about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2020-04-13 10:40:24 +0200
committerAndrea Fioraldi <andreafioraldi@gmail.com>2020-04-13 10:40:24 +0200
commit0022cc478244ce12050e1bc8733ab96104313e4e (patch)
treeacc353e741738e0c27bbe75acbd43a9f0f73b92b
parent995e556065375c34206f6f05c8572e0758c288ef (diff)
downloadafl++-0022cc478244ce12050e1bc8733ab96104313e4e.tar.gz
fix some cmplog refactoring bugs
-rw-r--r--src/afl-fuzz-run.c14
-rw-r--r--src/afl-fuzz.c2
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;