diff options
author | Dominik Maier <domenukk@gmail.com> | 2020-07-31 14:36:58 +0200 |
---|---|---|
committer | Dominik Maier <domenukk@gmail.com> | 2020-07-31 14:36:58 +0200 |
commit | 630d2a934b2b7a9978452fb79aa36b51e0cce315 (patch) | |
tree | 2d6023ccd3e40eba4bccd6da42e5fbd714e219ba /src | |
parent | d5758c138b8e4e676041afe69b19a89fc2fd5b57 (diff) | |
download | afl++-630d2a934b2b7a9978452fb79aa36b51e0cce315.tar.gz |
less gotos
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-fuzz-mutators.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/afl-fuzz-mutators.c b/src/afl-fuzz-mutators.c index b288cf9f..b30106a0 100644 --- a/src/afl-fuzz-mutators.c +++ b/src/afl-fuzz-mutators.c @@ -308,20 +308,23 @@ u8 trim_case_custom(afl_state_t *afl, struct queue_entry *q, u8 *in_buf, unsuccessful trimming and skip it, instead of aborting the trimming. */ ++afl->trim_execs; - goto unsuccessful_trimming; } - write_to_testcase(afl, retbuf, retlen); + if (likely(retlen)) { - fault = fuzz_run_target(afl, &afl->fsrv, afl->fsrv.exec_tmout); - ++afl->trim_execs; + write_to_testcase(afl, retbuf, retlen); - 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; + + if (afl->stop_soon || fault == FSRV_RUN_ERROR) { goto abort_trimming; } - cksum = hash64(afl->fsrv.trace_bits, afl->fsrv.map_size, HASH_CONST); + cksum = hash64(afl->fsrv.trace_bits, afl->fsrv.map_size, HASH_CONST); - if (cksum == q->exec_cksum) { + } + + if (likely(retlen && cksum == q->exec_cksum)) { q->len = retlen; memcpy(in_buf, retbuf, retlen); @@ -349,8 +352,6 @@ u8 trim_case_custom(afl_state_t *afl, struct queue_entry *q, u8 *in_buf, } else { - unsuccessful_trimming: - /* Tell the custom mutator that the trimming was unsuccessful */ afl->stage_cur = mutator->afl_custom_post_trim(mutator->data, 0); if (unlikely(afl->stage_cur < 0)) { |