diff options
author | vanhauser-thc <vh@thc.org> | 2021-03-27 12:53:09 +0100 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2021-03-27 12:53:09 +0100 |
commit | 7ca51fab19adfcda211282d4a1134eada7b60d2b (patch) | |
tree | c518e1bd8efc536689bf6c2771cad25a8c9b4504 /src/afl-fuzz.c | |
parent | 5ee2dd6bbdcabbdcc33278876632a9bc5060d71f (diff) | |
download | afl++-7ca51fab19adfcda211282d4a1134eada7b60d2b.tar.gz |
ensure one fuzzer sync per cycle, cycle introspection
Diffstat (limited to 'src/afl-fuzz.c')
-rw-r--r-- | src/afl-fuzz.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index a7edb924..9688c84f 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -1867,6 +1867,14 @@ int main(int argc, char **argv_orig, char **envp) { runs_in_current_cycle > afl->queued_paths) || (afl->old_seed_selection && !afl->queue_cur))) { + if (unlikely((afl->last_sync_cycle < afl->queue_cycle || + (!afl->queue_cycle && afl->afl_env.afl_import_first)) && + afl->sync_id)) { + + sync_fuzzers(afl); + + } + ++afl->queue_cycle; runs_in_current_cycle = (u32)-1; afl->cur_skipped_paths = 0; @@ -1980,6 +1988,13 @@ int main(int argc, char **argv_orig, char **envp) { } + #ifdef INTROSPECTION + fprintf(afl->introspection_file, + "CYCLE cycle=%llu cycle_wo_finds=%llu expand_havoc=%u queue=%u\n", + afl->queue_cycle, afl->cycles_wo_finds, afl->expand_havoc, + afl->queued_paths); + #endif + if (afl->cycle_schedules) { /* we cannot mix non-AFLfast schedules with others */ @@ -2031,13 +2046,6 @@ int main(int argc, char **argv_orig, char **envp) { prev_queued = afl->queued_paths; - if (afl->sync_id && afl->queue_cycle == 1 && - afl->afl_env.afl_import_first) { - - sync_fuzzers(afl); - - } - } ++runs_in_current_cycle; |