mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-17 12:18:08 +00:00
better solution
This commit is contained in:
@ -760,21 +760,10 @@ void read_testcases(afl_state_t *afl, u8 *directory) {
|
|||||||
if (nl_cnt) {
|
if (nl_cnt) {
|
||||||
|
|
||||||
u32 done = 0;
|
u32 done = 0;
|
||||||
|
i = 0;
|
||||||
if (unlikely(afl->in_place_resume)) {
|
|
||||||
|
|
||||||
i = nl_cnt;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
if (unlikely(afl->in_place_resume)) { --i; }
|
|
||||||
|
|
||||||
struct stat st;
|
struct stat st;
|
||||||
u8 dfn[PATH_MAX];
|
u8 dfn[PATH_MAX];
|
||||||
snprintf(dfn, PATH_MAX, "%s/.state/deterministic_done/%s", afl->in_dir,
|
snprintf(dfn, PATH_MAX, "%s/.state/deterministic_done/%s", afl->in_dir,
|
||||||
@ -854,22 +843,12 @@ void read_testcases(afl_state_t *afl, u8 *directory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
next_entry:
|
next_entry:
|
||||||
if (unlikely(afl->in_place_resume)) {
|
if (unlikely(++i >= (u32)nl_cnt)) { done = 1; }
|
||||||
|
|
||||||
if (unlikely(i == 0)) { done = 1; }
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
if (unlikely(++i >= (u32)nl_cnt)) { done = 1; }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} while (!done);
|
} while (!done);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (getenv("MYTEST")) afl->in_place_resume = 0;
|
|
||||||
|
|
||||||
free(nl); /* not tracked */
|
free(nl); /* not tracked */
|
||||||
|
|
||||||
if (!afl->queued_items && directory == NULL) {
|
if (!afl->queued_items && directory == NULL) {
|
||||||
@ -913,9 +892,21 @@ void perform_dry_run(afl_state_t *afl) {
|
|||||||
|
|
||||||
struct queue_entry *q;
|
struct queue_entry *q;
|
||||||
u32 cal_failures = 0, idx;
|
u32 cal_failures = 0, idx;
|
||||||
u8 *use_mem;
|
u8 *use_mem, done = 0;
|
||||||
|
|
||||||
for (idx = 0; idx < afl->queued_items; idx++) {
|
if (afl->in_place_resume) {
|
||||||
|
|
||||||
|
idx = afl->queued_items;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
idx = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
if (afl->in_place_resume) { --idx; }
|
||||||
|
|
||||||
q = afl->queue_buf[idx];
|
q = afl->queue_buf[idx];
|
||||||
if (unlikely(!q || q->disabled)) { continue; }
|
if (unlikely(!q || q->disabled)) { continue; }
|
||||||
@ -1382,7 +1373,17 @@ void perform_dry_run(afl_state_t *afl) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
if (!afl->in_place_resume) {
|
||||||
|
|
||||||
|
if (++idx >= afl->queued_items) { done = 1; }
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (idx == 0) { done = 1; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (!done);
|
||||||
|
|
||||||
if (cal_failures) {
|
if (cal_failures) {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user