aboutsummaryrefslogtreecommitdiff
path: root/src/afl-fuzz.c
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2023-09-12 08:35:44 +0000
committerGitHub <noreply@github.com>2023-09-12 08:35:44 +0000
commit7d2122e0596132f9344a5d0896020ebc79cd33db (patch)
treed881b11261251705b3a1c48def8c1cdae5766828 /src/afl-fuzz.c
parent0688c779ec543c4f5f84363b06c72ac11a14f716 (diff)
parent4f4ce24690c682af500ee235c57055d87dfb9c9d (diff)
downloadafl++-7d2122e0596132f9344a5d0896020ebc79cd33db.tar.gz
Merge pull request #1860 from AFLplusplus/dev
push to stable
Diffstat (limited to 'src/afl-fuzz.c')
-rw-r--r--src/afl-fuzz.c52
1 files changed, 41 insertions, 11 deletions
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 90c255e3..a3d5e300 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -2369,7 +2369,7 @@ int main(int argc, char **argv_orig, char **envp) {
} else {
- ACTF("skipping initial seed calibration due option override");
+ ACTF("skipping initial seed calibration due option override!");
usleep(1000);
}
@@ -2707,22 +2707,52 @@ int main(int argc, char **argv_orig, char **envp) {
if (likely(!afl->old_seed_selection)) {
- if (unlikely(prev_queued_items < afl->queued_items ||
- afl->reinit_table)) {
+ if (likely(afl->pending_favored && afl->smallest_favored >= 0)) {
- // we have new queue entries since the last run, recreate alias table
- prev_queued_items = afl->queued_items;
- create_alias_table(afl);
+ afl->current_entry = afl->smallest_favored;
- }
+ /*
- do {
+ } else {
- afl->current_entry = select_next_queue_entry(afl);
+ for (s32 iter = afl->queued_items - 1; iter >= 0; --iter)
+ {
- } while (unlikely(afl->current_entry >= afl->queued_items));
+ if (unlikely(afl->queue_buf[iter]->favored &&
+ !afl->queue_buf[iter]->was_fuzzed)) {
- afl->queue_cur = afl->queue_buf[afl->current_entry];
+ afl->current_entry = iter;
+ break;
+
+ }
+
+ }
+
+ */
+
+ afl->queue_cur = afl->queue_buf[afl->current_entry];
+
+ } else {
+
+ if (unlikely(prev_queued_items < afl->queued_items ||
+ afl->reinit_table)) {
+
+ // we have new queue entries since the last run, recreate alias
+ // table
+ prev_queued_items = afl->queued_items;
+ create_alias_table(afl);
+
+ }
+
+ do {
+
+ afl->current_entry = select_next_queue_entry(afl);
+
+ } while (unlikely(afl->current_entry >= afl->queued_items));
+
+ afl->queue_cur = afl->queue_buf[afl->current_entry];
+
+ }
}