diff options
author | Andrea Fioraldi <andreafioraldi@gmail.com> | 2020-04-13 10:40:24 +0200 |
---|---|---|
committer | Andrea Fioraldi <andreafioraldi@gmail.com> | 2020-04-13 10:40:24 +0200 |
commit | 0022cc478244ce12050e1bc8733ab96104313e4e (patch) | |
tree | acc353e741738e0c27bbe75acbd43a9f0f73b92b | |
parent | 995e556065375c34206f6f05c8572e0758c288ef (diff) | |
download | afl++-0022cc478244ce12050e1bc8733ab96104313e4e.tar.gz |
fix some cmplog refactoring bugs
-rw-r--r-- | src/afl-fuzz-run.c | 14 | ||||
-rw-r--r-- | src/afl-fuzz.c | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/afl-fuzz-run.c b/src/afl-fuzz-run.c index 4c98d788..9f79a5c9 100644 --- a/src/afl-fuzz-run.c +++ b/src/afl-fuzz-run.c @@ -46,7 +46,7 @@ u8 run_target(afl_state_t *afl, afl_forkserver_t *fsrv, u32 timeout) { must prevent any earlier operations from venturing into that territory. */ - memset(fsrv->trace_bits, 0, fsrv->map_size); + if (fsrv->trace_bits) memset(fsrv->trace_bits, 0, fsrv->map_size); MEM_BARRIER(); @@ -120,14 +120,18 @@ u8 run_target(afl_state_t *afl, afl_forkserver_t *fsrv, u32 timeout) { MEM_BARRIER(); - tb4 = *(u32 *)fsrv->trace_bits; + if (fsrv->trace_bits) { + + tb4 = *(u32 *)fsrv->trace_bits; #ifdef WORD_SIZE_64 - classify_counts(afl, (u64 *)fsrv->trace_bits); + classify_counts(afl, (u64 *)fsrv->trace_bits); #else - classify_counts(afl, (u32 *)fsrv->trace_bits); + classify_counts(afl, (u32 *)fsrv->trace_bits); #endif /* ^WORD_SIZE_64 */ + } + fsrv->prev_timed_out = fsrv->child_timed_out; /* Report outcome to caller. */ @@ -312,7 +316,7 @@ u8 calibrate_case(afl_state_t *afl, struct queue_entry *q, u8 *use_mem, if (!afl->fsrv.fsrv_pid) { - if (afl->shm.cmplog_mode && + if (afl->fsrv.cmplog_binary && afl->fsrv.init_child_func != cmplog_exec_child) { FATAL("BUG in afl-fuzz detected. Cmplog mode not set correctly."); diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 6eae2675..a813906c 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -1019,7 +1019,7 @@ int main(int argc, char **argv_orig, char **envp) { if (afl->cmplog_binary) { - SAYF("Spawning cmplog forkserver"); + ACTF("Spawning cmplog forkserver"); afl_fsrv_init_dup(&afl->cmplog_fsrv, &afl->fsrv); // TODO: this is semi-nice afl->cmplog_fsrv.cmplog_binary = afl->cmplog_binary; |