reverse read the queue n resumes
MODIFY
docs/Changelog.md
docs/Changelog.md
@@ -16,6 +16,7 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
- if the target becomes unavailable check out out/default/error.txt
for an indicator why
- AFL_CAL_FAST was a dead env, now does the same as AFL_FAST_CAL
+ - reverse read the queue on resumes (more effective)
- afl-cc:
- Update to COMPCOV/laf-intel that speeds up the instrumentation
process a lot - thanks to Michael Rodler/f0rki for the PR!

MODIFY
src/afl-fuzz-init.c
src/afl-fuzz-init.c
@@ -710,7 +710,10 @@ void read_testcases(afl_state_t *afl, u8 *directory) {
}
- for (i = 0; i < (u32)nl_cnt; ++i) {
+ i = nl_cnt;
+ do {
+
+ --i;
struct stat st;
@@ -801,7 +804,7 @@ void read_testcases(afl_state_t *afl, u8 *directory) {
*/
- }
+ } while (i > 0);
free(nl); /* not tracked */

MODIFY
src/afl-fuzz-run.c
src/afl-fuzz-run.c
@@ -424,7 +424,8 @@ u8 calibrate_case(afl_state_t *afl, struct queue_entry *q, u8 *use_mem,
}
var_detected = 1;
- afl->stage_max = afl->afl_env.afl_cal_fast ? CAL_CYCLES : CAL_CYCLES_LONG;
+ afl->stage_max =
+ afl->afl_env.afl_cal_fast ? CAL_CYCLES : CAL_CYCLES_LONG;
} else {

MODIFY
src/afl-fuzz.c
src/afl-fuzz.c
@@ -1911,7 +1911,12 @@ int main(int argc, char **argv_orig, char **envp) {
if (unlikely(afl->old_seed_selection)) seek_to = find_start_position(afl);
afl->start_time = get_cur_time();
- if (afl->in_place_resume || afl->afl_env.afl_autoresume) load_stats_file(afl);
+ if (afl->in_place_resume || afl->afl_env.afl_autoresume) {
+
+ load_stats_file(afl);
+
+ }
+
write_stats_file(afl, 0, 0, 0, 0);
maybe_update_plot_file(afl, 0, 0, 0);
save_auto(afl);

reverse read the queue n resumes