This commit is contained in:
van Hauser
2021-01-26 12:15:13 +01:00
parent 7c381a782e
commit e0663c91b9
2 changed files with 27 additions and 9 deletions

View File

@ -1026,6 +1026,14 @@ void perform_dry_run(afl_state_t *afl) {
/* Remove from fuzzing queue but keep for splicing */ /* Remove from fuzzing queue but keep for splicing */
struct queue_entry *p = afl->queue; struct queue_entry *p = afl->queue;
if (!p->disabled && !p->was_fuzzed) {
--afl->pending_not_fuzzed;
--afl->active_paths;
}
p->disabled = 1; p->disabled = 1;
p->perf_score = 0; p->perf_score = 0;
while (p && p->next != q) while (p && p->next != q)
@ -1036,9 +1044,6 @@ void perform_dry_run(afl_state_t *afl) {
else else
afl->queue = q->next; afl->queue = q->next;
--afl->pending_not_fuzzed;
--afl->active_paths;
afl->max_depth = 0; afl->max_depth = 0;
p = afl->queue; p = afl->queue;
while (p) { while (p) {
@ -1123,9 +1128,17 @@ restart_outer_cull_loop:
if (!p->cal_failed && p->exec_cksum == q->exec_cksum) { if (!p->cal_failed && p->exec_cksum == q->exec_cksum) {
duplicates = 1; duplicates = 1;
if (!p->disabled && !q->disabled && !p->was_fuzzed && !q->was_fuzzed) {
--afl->pending_not_fuzzed; --afl->pending_not_fuzzed;
afl->active_paths--; afl->active_paths--;
} else {
FATAL("disabled entry? this should not happen, please report!");
}
// We do not remove any of the memory allocated because for // We do not remove any of the memory allocated because for
// splicing the data might still be interesting. // splicing the data might still be interesting.
// We only decouple them from the linked list. // We only decouple them from the linked list.

View File

@ -2782,7 +2782,10 @@ abandon_entry:
cycle and have not seen this entry before. */ cycle and have not seen this entry before. */
if (!afl->stop_soon && !afl->queue_cur->cal_failed && if (!afl->stop_soon && !afl->queue_cur->cal_failed &&
(afl->queue_cur->was_fuzzed == 0 || afl->queue_cur->fuzz_level == 0)) { (afl->queue_cur->was_fuzzed == 0 || afl->queue_cur->fuzz_level == 0) &&
!afl->queue_cur->disabled) {
if (!afl->queue_cur->was_fuzzed) {
--afl->pending_not_fuzzed; --afl->pending_not_fuzzed;
afl->queue_cur->was_fuzzed = 1; afl->queue_cur->was_fuzzed = 1;
@ -2790,6 +2793,8 @@ abandon_entry:
} }
}
++afl->queue_cur->fuzz_level; ++afl->queue_cur->fuzz_level;
orig_in = NULL; orig_in = NULL;
return ret_val; return ret_val;