about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJunwha <qbit@unist.ac.kr>2023-08-04 18:36:58 +0900
committerJunwha <qbit@unist.ac.kr>2023-08-04 18:36:58 +0900
commitfcdfe9e990d84ab477cd3c571cbf540e8bc8e15a (patch)
treefa5e386c1a5730137bebd1b8c1d0228f243a382a /src
parenta61e1ffe4dceb5b4dec3409faf037bea4c05bef9 (diff)
downloadafl++-fcdfe9e990d84ab477cd3c571cbf540e8bc8e15a.tar.gz
Define AFL_CRASHING_SEEDS_AS_NEW_CRASH as env variable
- and fix typo

Signed-off-by: Junwha <qbit@unist.ac.kr>
Diffstat (limited to 'src')
-rw-r--r--src/afl-fuzz-init.c30
-rw-r--r--src/afl-fuzz-state.c7
-rw-r--r--src/afl-fuzz.c1
3 files changed, 23 insertions, 15 deletions
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index 6b7f3036..d994d749 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -1056,17 +1056,19 @@ void perform_dry_run(afl_state_t *afl) {
               "skipping",
               fn, (int)(s8)afl->fsrv.crash_exitcode);
 
-        } else if (afl->crashing_seeds_as_new_crash) {
-          
-          WARNF(
-              "Test case '%s' results in a crash,"
-              "as AFL_CRASHING_SEEDS_AS_NEW_CRASH is set, "
-              "saving as a crash", fn);
-
         } else {
+          if (afl->afl_env.afl_crashing_seeds_as_new_crash) {
+          
+            WARNF(
+                "Test case '%s' results in a crash, "
+                "as AFL_CRASHING_SEEDS_AS_NEW_CRASH is set, "
+                "saving as a new crash", fn);
+            
+          } else {
 
-          WARNF("Test case '%s' results in a crash, skipping", fn);
-
+            WARNF("Test case '%s' results in a crash, skipping", fn);
+          
+          }
         }
 
         if (afl->afl_env.afl_exit_on_seed_issues) {
@@ -1085,8 +1087,8 @@ void perform_dry_run(afl_state_t *afl) {
 
         }
 
-        /* Crashing corpus will regrad as normal, and categorized as new crash at fuzzing  */
-        if (afl->crashing_seeds_as_new_crash) {
+        /* Crashing seeds will be regarded as new crashes on startup */
+        if (afl->afl_env.afl_crashing_seeds_as_new_crash) {
           
           ++afl->total_crashes;
 
@@ -1139,9 +1141,6 @@ void perform_dry_run(afl_state_t *afl) {
 
         } else {
 
-          q->disabled = 1;
-          q->perf_score = 0;
-
           u32 i = 0;
           while (unlikely(i < afl->queued_items && afl->queue_buf[i] &&
                           afl->queue_buf[i]->disabled)) {
@@ -1171,6 +1170,9 @@ void perform_dry_run(afl_state_t *afl) {
 
         }
         
+        q->disabled = 1;
+        q->perf_score = 0;
+
         break;  
       
       case FSRV_RUN_ERROR:
diff --git a/src/afl-fuzz-state.c b/src/afl-fuzz-state.c
index 99f69314..5a6b95cf 100644
--- a/src/afl-fuzz-state.c
+++ b/src/afl-fuzz-state.c
@@ -200,6 +200,13 @@ void read_afl_environment(afl_state_t *afl, char **envp) {
             afl->afl_env.afl_exit_on_time =
                 (u8 *)get_afl_env(afl_environment_variables[i]);
 
+          } else if (!strncmp(env, "AFL_CRASHING_SEEDS_AS_NEW_CRASH",
+
+                              afl_environment_variable_len)) {
+
+            afl->afl_env.afl_crashing_seeds_as_new_crash =
+                atoi((u8 *)get_afl_env(afl_environment_variables[i]));
+
           } else if (!strncmp(env, "AFL_NO_AFFINITY",
 
                               afl_environment_variable_len)) {
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 5cbebb0e..51ca4ee6 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -1573,7 +1573,6 @@ int main(int argc, char **argv_orig, char **envp) {
   if (get_afl_env("AFL_NO_ARITH")) { afl->no_arith = 1; }
   if (get_afl_env("AFL_SHUFFLE_QUEUE")) { afl->shuffle_queue = 1; }
   if (get_afl_env("AFL_EXPAND_HAVOC_NOW")) { afl->expand_havoc = 1; }
-  if (get_afl_env("AFL_CRASHING_SEEDS_AS_NEW_CRASH")) { afl->crashing_seeds_as_new_crash = 1; }
   
   if (afl->afl_env.afl_autoresume) {