diff options
author | vanhauser-thc <vh@thc.org> | 2022-07-19 12:24:03 +0200 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2022-07-19 12:24:03 +0200 |
commit | ca4a8c0f920f83c86aeb599b94b50fce2af68389 (patch) | |
tree | 0c59bc591d0c8991775c0db8655e4b9c5321b666 /src/afl-fuzz-mutators.c | |
parent | b847e0f414e7b310e1a68bc501d4e2453bfce70e (diff) | |
download | afl++-ca4a8c0f920f83c86aeb599b94b50fce2af68389.tar.gz |
post_process 0/NULL return support
Diffstat (limited to 'src/afl-fuzz-mutators.c')
-rw-r--r-- | src/afl-fuzz-mutators.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/afl-fuzz-mutators.c b/src/afl-fuzz-mutators.c index dd97a7d3..b9daebfa 100644 --- a/src/afl-fuzz-mutators.c +++ b/src/afl-fuzz-mutators.c @@ -430,13 +430,21 @@ u8 trim_case_custom(afl_state_t *afl, struct queue_entry *q, u8 *in_buf, retlen = write_to_testcase(afl, (void **)&retbuf, retlen, 0); - fault = fuzz_run_target(afl, &afl->fsrv, afl->fsrv.exec_tmout); - ++afl->trim_execs; + if (unlikely(!retlen)) { + + ++afl->trim_execs; + + } else { - if (afl->stop_soon || fault == FSRV_RUN_ERROR) { goto abort_trimming; } + fault = fuzz_run_target(afl, &afl->fsrv, afl->fsrv.exec_tmout); + ++afl->trim_execs; - classify_counts(&afl->fsrv); - cksum = hash64(afl->fsrv.trace_bits, afl->fsrv.map_size, HASH_CONST); + if (afl->stop_soon || fault == FSRV_RUN_ERROR) { goto abort_trimming; } + + classify_counts(&afl->fsrv); + cksum = hash64(afl->fsrv.trace_bits, afl->fsrv.map_size, HASH_CONST); + + } } |