about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDominik Maier <domenukk@gmail.com>2020-03-01 14:09:21 +0100
committerDominik Maier <domenukk@gmail.com>2020-03-01 14:09:21 +0100
commit3e0a3ec45fe35f62a293d86139913ecf45670535 (patch)
tree465f6486743d37db3bc2fb989acd878b2964ed66 /src
parent6865cd8d691385f805a63b62f9836abf98061e4f (diff)
downloadafl++-3e0a3ec45fe35f62a293d86139913ecf45670535.tar.gz
migrated autoresume to use get_afl_env
Diffstat (limited to 'src')
-rw-r--r--src/afl-fuzz-globals.c1
-rw-r--r--src/afl-fuzz-init.c2
-rw-r--r--src/afl-fuzz.c17
3 files changed, 11 insertions, 9 deletions
diff --git a/src/afl-fuzz-globals.c b/src/afl-fuzz-globals.c
index fc71d29d..ae343026 100644
--- a/src/afl-fuzz-globals.c
+++ b/src/afl-fuzz-globals.c
@@ -115,6 +115,7 @@ u8 skip_deterministic,                  /* Skip deterministic stages?       */
     no_forkserver,                      /* Disable forkserver?              */
     crash_mode,                         /* Crash mode! Yeah!                */
     in_place_resume,                    /* Attempt in-place resume?         */
+    autoresume,                         /* Resume if out_dir exists?        */
     auto_changed,                       /* Auto-generated tokens changed?   */
     no_cpu_meter_red,                   /* Feng shui on the status screen   */
     no_arith,                           /* Skip most arithmetic ops         */
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index 6e7d3f74..a82fa8f9 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -1066,7 +1066,7 @@ static void handle_existing_out_dir(void) {
 
     /* Autoresume treats a normal run as in_place_resume if a valid out dir already exists */
 
-    if (getenv("AFL_AUTORESUME")) {
+    if (!in_place_resume && autoresume) {
     
       OKF("Detected prior run with AFL_AUTORESUME set. Resuming.");
       in_place_resume = 1;
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index d4c75d9c..98c9dbe3 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -314,14 +314,7 @@ int main(int argc, char** argv, char** envp) {
         if (in_dir) FATAL("Multiple -i options not supported");
         in_dir = optarg;
 
-        if (!strcmp(in_dir, "-")) {
-            
-            if (getenv("AFL_AUTORESUME")) 
-              WARNF("AFL_AUTORESUME has no effect for '-i -'");
-
-            in_place_resume = 1;
-
-        }
+        if (!strcmp(in_dir, "-")) in_place_resume = 1;
 
         break;
 
@@ -757,6 +750,14 @@ int main(int argc, char** argv, char** envp) {
   if (get_afl_env("AFL_SHUFFLE_QUEUE")) shuffle_queue = 1;
   if (get_afl_env("AFL_FAST_CAL")) fast_cal = 1;
 
+  if (get_afl_env("AFL_AUTORESUME")) {
+    
+    autoresume = 1;
+    if (in_place_resume) 
+      WARNF("AFL_AUTORESUME has no effect for '-i -'");
+
+  }
+
   if (get_afl_env("AFL_HANG_TMOUT")) {
 
     hang_tmout = atoi(getenv("AFL_HANG_TMOUT"));