mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-13 10:38:07 +00:00
taint integration done
This commit is contained in:
@ -712,7 +712,7 @@ void read_testcases(afl_state_t *afl) {
|
||||
|
||||
if (!access(dfn, F_OK)) { passed_det = 1; }
|
||||
|
||||
add_to_queue(afl, fn2, st.st_size, passed_det);
|
||||
add_to_queue(afl, fn2, NULL, st.st_size, NULL, passed_det);
|
||||
|
||||
}
|
||||
|
||||
@ -960,6 +960,9 @@ void perform_dry_run(afl_state_t *afl) {
|
||||
|
||||
}
|
||||
|
||||
/* perform taint gathering on the input seed */
|
||||
perform_taint_run(afl, q, q->fname, use_mem, q->len);
|
||||
|
||||
q = q->next;
|
||||
|
||||
}
|
||||
@ -1438,6 +1441,10 @@ static void handle_existing_out_dir(afl_state_t *afl) {
|
||||
|
||||
u8 *orig_q = alloc_printf("%s/queue", afl->out_dir);
|
||||
|
||||
u8 *fnt = alloc_printf("%s/taint", afl->out_dir);
|
||||
mkdir(fnt, 0755); // ignore errors
|
||||
ck_free(fnt);
|
||||
|
||||
afl->in_dir = alloc_printf("%s/_resume", afl->out_dir);
|
||||
|
||||
rename(orig_q, afl->in_dir); /* Ignore errors */
|
||||
@ -1494,6 +1501,15 @@ static void handle_existing_out_dir(afl_state_t *afl) {
|
||||
if (delete_files(fn, CASE_PREFIX)) { goto dir_cleanup_failed; }
|
||||
ck_free(fn);
|
||||
|
||||
if (afl->fsrv.taint_mode) {
|
||||
|
||||
fn = alloc_printf("%s/taint", afl->out_dir);
|
||||
mkdir(fn, 0755); // ignore errors
|
||||
if (delete_files(fn, CASE_PREFIX)) { goto dir_cleanup_failed; }
|
||||
ck_free(fn);
|
||||
|
||||
}
|
||||
|
||||
/* All right, let's do <afl->out_dir>/crashes/id:* and
|
||||
* <afl->out_dir>/hangs/id:*. */
|
||||
|
||||
@ -1721,6 +1737,16 @@ void setup_dirs_fds(afl_state_t *afl) {
|
||||
if (mkdir(tmp, 0700)) { PFATAL("Unable to create '%s'", tmp); }
|
||||
ck_free(tmp);
|
||||
|
||||
/* Taint directory if taint_mode. */
|
||||
|
||||
if (afl->fsrv.taint_mode) {
|
||||
|
||||
tmp = alloc_printf("%s/taint", afl->out_dir);
|
||||
if (mkdir(tmp, 0700)) { PFATAL("Unable to create '%s'", tmp); }
|
||||
ck_free(tmp);
|
||||
|
||||
}
|
||||
|
||||
/* Top-level directory for queue metadata used for session
|
||||
resume and related tasks. */
|
||||
|
||||
|
Reference in New Issue
Block a user