diff options
author | vanhauser-thc <vh@thc.org> | 2021-07-09 11:39:25 +0200 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2021-07-09 11:39:25 +0200 |
commit | d354ec2586a3a31c87a8b95433c2886f04c44a03 (patch) | |
tree | 1dcd1a1c7460677f8ea7e299126580cad018a0f1 /src/afl-fuzz-mutators.c | |
parent | e1d5009229fb5cea5845cd08e0abdc8fe440ee86 (diff) | |
download | afl++-d354ec2586a3a31c87a8b95433c2886f04c44a03.tar.gz |
more fixes
Diffstat (limited to 'src/afl-fuzz-mutators.c')
-rw-r--r-- | src/afl-fuzz-mutators.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/afl-fuzz-mutators.c b/src/afl-fuzz-mutators.c index e27d6fae..91bae48e 100644 --- a/src/afl-fuzz-mutators.c +++ b/src/afl-fuzz-mutators.c @@ -31,6 +31,45 @@ struct custom_mutator *load_custom_mutator(afl_state_t *, const char *); struct custom_mutator *load_custom_mutator_py(afl_state_t *, char *); #endif +void run_afl_custom_queue_new_entry(afl_state_t *afl, struct queue_entry *q, + u8 *fname, u8 *mother_fname) { + + if (afl->custom_mutators_count) { + + u8 updated = 0; + + LIST_FOREACH(&afl->custom_mutator_list, struct custom_mutator, { + + if (el->afl_custom_queue_new_entry) { + + if (el->afl_custom_queue_new_entry(el->data, fname, mother_fname)) { + + updated = 1; + + } + + } + + }); + + if (updated) { + + struct stat st; + if (stat(fname, &st)) { PFATAL("File %s is gone!", fname); } + if (!st.st_size) { + + FATAL("File %s became empty in custom mutator!", fname); + + } + + q->len = st.st_size; + + } + + } + +} + void setup_custom_mutators(afl_state_t *afl) { /* Try mutator library first */ |