about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2022-02-05 07:25:12 +0100
committervanhauser-thc <vh@thc.org>2022-02-05 07:25:12 +0100
commit04d693721bbfe181a8d1c6361d46baa74388e6f2 (patch)
tree1a391419a3aea0013c9080904443c79fce7cb371
parent9eb66cccf4443e1ee7bcfe8f4e81c9836b39d834 (diff)
downloadafl++-04d693721bbfe181a8d1c6361d46baa74388e6f2.tar.gz
force persistent and deferred also for tools
-rw-r--r--src/afl-common.c6
-rw-r--r--src/afl-fuzz-init.c1
-rw-r--r--src/afl-fuzz.c2
3 files changed, 6 insertions, 3 deletions
diff --git a/src/afl-common.c b/src/afl-common.c
index 7ba3bb74..e684302a 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -63,7 +63,8 @@ u32 check_binary_signatures(u8 *fn) {
   if (f_data == MAP_FAILED) { PFATAL("Unable to mmap file '%s'", fn); }
   close(fd);
 
-  if (memmem(f_data, f_len, PERSIST_SIG, strlen(PERSIST_SIG) + 1)) {
+  if (memmem(f_data, f_len, PERSIST_SIG, strlen(PERSIST_SIG) + 1) ||
+      getenv(PERSIST_ENV_VAR)) {
 
     if (!be_quiet) { OKF(cPIN "Persistent mode binary detected."); }
     setenv(PERSIST_ENV_VAR, "1", 1);
@@ -90,7 +91,8 @@ u32 check_binary_signatures(u8 *fn) {
 
   }
 
-  if (memmem(f_data, f_len, DEFER_SIG, strlen(DEFER_SIG) + 1)) {
+  if (memmem(f_data, f_len, DEFER_SIG, strlen(DEFER_SIG) + 1) ||
+      getenv(DEFER_ENV_VAR)) {
 
     if (!be_quiet) { OKF(cPIN "Deferred forkserver binary detected."); }
     setenv(DEFER_ENV_VAR, "1", 1);
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index 9e74079b..eb73b120 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -2830,6 +2830,7 @@ void check_binary(afl_state_t *afl, u8 *fname) {
     OKF("FRIDA Persistent mode configuration options detected.");
     setenv(PERSIST_ENV_VAR, "1", 1);
     afl->persistent_mode = 1;
+    afl->fsrv.persistent_mode = 1;
     afl->shmem_testcase_mode = 1;
 
   }
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index d8610df9..7a74fc7e 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -1912,7 +1912,7 @@ int main(int argc, char **argv_orig, char **envp) {
 
     WARNF(
         "Deferred forkserver mode environment variable detected, forcing "
-        "defered forkserver!");
+        "deferred forkserver!");
     afl->deferred_mode = 1;
 
   }