about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2023-02-12 17:55:48 +0100
committerGitHub <noreply@github.com>2023-02-12 17:55:48 +0100
commit6030df2f563c8c5bf482217478375a6b7ea3b15a (patch)
tree364f019b6a3f8384b67589ac4f1dd83497d351dd
parent141c324eb935ddd25a9ea898bf94ed4f3afb7a79 (diff)
parent846e910e0c6d09808ea6f87b59e2cf79769979dc (diff)
downloadafl++-6030df2f563c8c5bf482217478375a6b7ea3b15a.tar.gz
Merge pull request #1639 from apach301/fix-score-calculation
Increase fuzz_level for mopt_common_fuzzing
-rw-r--r--src/afl-fuzz-one.c1
-rw-r--r--src/afl-fuzz-queue.c6
-rw-r--r--src/afl-fuzz.c6
3 files changed, 13 insertions, 0 deletions
diff --git a/src/afl-fuzz-one.c b/src/afl-fuzz-one.c
index 6367f597..76826945 100644
--- a/src/afl-fuzz-one.c
+++ b/src/afl-fuzz-one.c
@@ -5683,6 +5683,7 @@ pacemaker_fuzzing:
 
   }                                                                /* block */
 
+  ++afl->queue_cur->fuzz_level;
   return ret_val;
 
 }
diff --git a/src/afl-fuzz-queue.c b/src/afl-fuzz-queue.c
index e3faa392..ebfc252c 100644
--- a/src/afl-fuzz-queue.c
+++ b/src/afl-fuzz-queue.c
@@ -1007,10 +1007,16 @@ u32 calculate_score(afl_state_t *afl, struct queue_entry *q) {
       break;
 
     case LIN:
+      // Don't modify perf_score for unfuzzed seeds
+      if (!q->fuzz_level) break;
+
       factor = q->fuzz_level / (afl->n_fuzz[q->n_fuzz_entry] + 1);
       break;
 
     case QUAD:
+      // Don't modify perf_score for unfuzzed seeds
+      if (!q->fuzz_level) break;
+
       factor =
           q->fuzz_level * q->fuzz_level / (afl->n_fuzz[q->n_fuzz_entry] + 1);
       break;
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 6bd81304..5f286427 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -1297,6 +1297,12 @@ int main(int argc, char **argv_orig, char **envp) {
 
   }
 
+  if (afl->is_main_node == 1 && afl->schedule != FAST && afl->schedule != EXPLORE) {
+
+    FATAL("-M is compatible only with fast and explore -p power schedules");
+
+  }
+
   if (optind == argc || !afl->in_dir || !afl->out_dir || show_help) {
 
     usage(argv[0], show_help);