diff options
author | van Hauser <vh@thc.org> | 2020-09-29 14:06:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-29 14:06:20 +0200 |
commit | fe08482c1b2269289bfedea9f0ef2b6721d18221 (patch) | |
tree | abe699ce381526ad0c0106628852593dc9eeebfe /src/afl-fuzz-bitmap.c | |
parent | e69b25e34be8028921389bbb114135c3028d0a3d (diff) | |
parent | e87eca7fe8ec3ed0ba79e7722350ad502b67218b (diff) | |
download | afl++-fe08482c1b2269289bfedea9f0ef2b6721d18221.tar.gz |
Merge pull request #568 from mboehme/dev
Patching and improving AFLFast schedules.
Diffstat (limited to 'src/afl-fuzz-bitmap.c')
-rw-r--r-- | src/afl-fuzz-bitmap.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/afl-fuzz-bitmap.c b/src/afl-fuzz-bitmap.c index 1b9df624..64de86a2 100644 --- a/src/afl-fuzz-bitmap.c +++ b/src/afl-fuzz-bitmap.c @@ -555,19 +555,9 @@ save_if_interesting(afl_state_t *afl, void *mem, u32 len, u8 fault) { cksum = hash64(afl->fsrv.trace_bits, afl->fsrv.map_size, HASH_CONST); - struct queue_entry *q = afl->queue; - while (q) { - - if (q->exec_cksum == cksum) { - - ++q->n_fuzz; - break; - - } - - q = q->next; - - } + /* Saturated increment */ + if (afl->n_fuzz[cksum % n_fuzz_size] < 0xFFFFFFFF) + afl->n_fuzz[cksum % n_fuzz_size]++; } @@ -610,6 +600,8 @@ save_if_interesting(afl_state_t *afl, void *mem, u32 len, u8 fault) { afl->queue_top->exec_cksum = hash64(afl->fsrv.trace_bits, afl->fsrv.map_size, HASH_CONST); + afl->n_fuzz[cksum % n_fuzz_size] = 1; + /* Try to calibrate inline; this also calls update_bitmap_score() when successful. */ |