about summary refs log tree commit diff
path: root/src/afl-fuzz-cmplog.c
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2022-07-19 12:24:03 +0200
committervanhauser-thc <vh@thc.org>2022-07-19 12:24:03 +0200
commitca4a8c0f920f83c86aeb599b94b50fce2af68389 (patch)
tree0c59bc591d0c8991775c0db8655e4b9c5321b666 /src/afl-fuzz-cmplog.c
parentb847e0f414e7b310e1a68bc501d4e2453bfce70e (diff)
downloadafl++-ca4a8c0f920f83c86aeb599b94b50fce2af68389.tar.gz
post_process 0/NULL return support
Diffstat (limited to 'src/afl-fuzz-cmplog.c')
-rw-r--r--src/afl-fuzz-cmplog.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/afl-fuzz-cmplog.c b/src/afl-fuzz-cmplog.c
index 258d9ea7..d0c829e2 100644
--- a/src/afl-fuzz-cmplog.c
+++ b/src/afl-fuzz-cmplog.c
@@ -47,9 +47,18 @@ void cmplog_exec_child(afl_forkserver_t *fsrv, char **argv) {
 
 u8 common_fuzz_cmplog_stuff(afl_state_t *afl, u8 *out_buf, u32 len) {
 
-  u8 fault;
+  u8  fault;
+  u32 tmp_len = write_to_testcase(afl, (void **)&out_buf, len, 0);
 
-  write_to_testcase(afl, (void **)&out_buf, len, 0);
+  if (likely(tmp_len)) {
+
+    len = tmp_len;
+
+  } else {
+
+    len = write_to_testcase(afl, (void **)&out_buf, len, 1);
+
+  }
 
   fault = fuzz_run_target(afl, &afl->cmplog_fsrv, afl->fsrv.exec_tmout);