diff options
author | van Hauser <vh@thc.org> | 2023-09-11 12:54:27 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-11 12:54:27 +0000 |
commit | a384d7f91f62267494291f431eecc144aa3bfe1f (patch) | |
tree | d9f99fec6352900147f3b51fd5e7572d68a0e521 /src | |
parent | a8185f8ff294d937e6074f148f6b4c971ca02cee (diff) | |
parent | 9f023d482bf4deace3b2f3d726a1bf7062511087 (diff) | |
download | afl++-a384d7f91f62267494291f431eecc144aa3bfe1f.tar.gz |
Merge pull request #1859 from AFLplusplus/reinit
ensure table reinit, downgrade redundant
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-fuzz-init.c | 5 | ||||
-rw-r--r-- | src/afl-fuzz-one.c | 8 | ||||
-rw-r--r-- | src/afl-fuzz-queue.c | 3 | ||||
-rw-r--r-- | src/afl-fuzz.c | 2 |
4 files changed, 14 insertions, 4 deletions
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c index 9fc0cc57..35932913 100644 --- a/src/afl-fuzz-init.c +++ b/src/afl-fuzz-init.c @@ -942,6 +942,7 @@ void perform_dry_run(afl_state_t *afl) { if (!q->was_fuzzed) { q->was_fuzzed = 1; + afl->reinit_table = 1; --afl->pending_not_fuzzed; --afl->active_items; @@ -982,6 +983,7 @@ void perform_dry_run(afl_state_t *afl) { if (!q->was_fuzzed) { q->was_fuzzed = 1; + afl->reinit_table = 1; --afl->pending_not_fuzzed; --afl->active_items; @@ -1113,6 +1115,7 @@ void perform_dry_run(afl_state_t *afl) { if (!q->was_fuzzed) { q->was_fuzzed = 1; + afl->reinit_table = 1; --afl->pending_not_fuzzed; --afl->active_items; @@ -1291,6 +1294,7 @@ void perform_dry_run(afl_state_t *afl) { if (!p->was_fuzzed) { p->was_fuzzed = 1; + afl->reinit_table = 1; --afl->pending_not_fuzzed; --afl->active_items; @@ -1311,6 +1315,7 @@ void perform_dry_run(afl_state_t *afl) { if (!q->was_fuzzed) { q->was_fuzzed = 1; + afl->reinit_table = 1; --afl->pending_not_fuzzed; --afl->active_items; diff --git a/src/afl-fuzz-one.c b/src/afl-fuzz-one.c index ae39abe8..db88f239 100644 --- a/src/afl-fuzz-one.c +++ b/src/afl-fuzz-one.c @@ -5910,9 +5910,11 @@ pacemaker_fuzzing: --afl->pending_not_fuzzed; afl->queue_cur->was_fuzzed = 1; - if (afl->queue_cur->favored) { --afl->pending_favored; - afl->smallest_favored = -1; } - + afl->reinit_table = 1 + if (afl->queue_cur->favored) { + --afl->pending_favored; + afl->smallest_favored = -1; + } } } diff --git a/src/afl-fuzz-queue.c b/src/afl-fuzz-queue.c index 91120e10..ce9718b0 100644 --- a/src/afl-fuzz-queue.c +++ b/src/afl-fuzz-queue.c @@ -80,6 +80,7 @@ double compute_weight(afl_state_t *afl, struct queue_entry *q, if (unlikely(weight < 0.1)) { weight = 0.1; } if (unlikely(q->favored)) { weight *= 5; } if (unlikely(!q->was_fuzzed)) { weight *= 2; } + if (unlikely(q->fs_redundant)) { weight *= 0.2; } return weight; @@ -882,6 +883,8 @@ void cull_queue(afl_state_t *afl) { } + afl->reinit_table = 1; + } /* Calculate case desirability score to adjust the length of havoc fuzzing. diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index d34b52db..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); } |