about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--src/afl-fuzz-one.c12
2 files changed, 10 insertions, 3 deletions
diff --git a/README.md b/README.md
index 194e4628..e9d0f826 100644
--- a/README.md
+++ b/README.md
@@ -1132,3 +1132,4 @@ Questions? Concerns? Bug reports? The contributors can be reached via
 There is also a mailing list for the afl/afl++ project; to join, send a mail to
 <afl-users+subscribe@googlegroups.com>. Or, if you prefer to browse archives
 first, try: [https://groups.google.com/group/afl-users](https://groups.google.com/group/afl-users)
+
diff --git a/src/afl-fuzz-one.c b/src/afl-fuzz-one.c
index 1e63abc7..35ff5466 100644
--- a/src/afl-fuzz-one.c
+++ b/src/afl-fuzz-one.c
@@ -1840,16 +1840,22 @@ havoc_stage:
 
   u32 r_max, r;
 
+  r_max = 15 + ((afl->extras_cnt + afl->a_extras_cnt) ? 2 : 0);
+
   if (unlikely(afl->expand_havoc && afl->ready_for_splicing_count > 1)) {
 
     /* add expensive havoc cases here, they are activated after a full
        cycle without finds happened */
 
-    r_max = 16 + ((afl->extras_cnt + afl->a_extras_cnt) ? 2 : 0);
+    r_max += 1;
 
-  } else {
+  }
+  
+  if (unlikely(get_cur_time() - afl->last_path_time > 5000)) {
+
+    /* add expensive havoc cases here if there is no findings in the last 5s */
 
-    r_max = 15 + ((afl->extras_cnt + afl->a_extras_cnt) ? 2 : 0);
+    r_max += 1;
 
   }