aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-06-01 10:40:25 +0200
committervanhauser-thc <vh@thc.org>2021-06-01 10:40:34 +0200
commit17e904eedf025e870c79cd0dcc037282e1cce1d7 (patch)
tree72b37764169b84ccb2709e034068cb010b744d7d /src
parent5b5dff4584f0efa2c02db7d75ebab7e31c253789 (diff)
downloadafl++-17e904eedf025e870c79cd0dcc037282e1cce1d7.tar.gz
fix afl_custom_post_process with multiple custom mutators
Diffstat (limited to 'src')
-rw-r--r--src/afl-fuzz-run.c30
1 files changed, 12 insertions, 18 deletions
diff --git a/src/afl-fuzz-run.c b/src/afl-fuzz-run.c
index 5a481639..7df4c625 100644
--- a/src/afl-fuzz-run.c
+++ b/src/afl-fuzz-run.c
@@ -107,27 +107,21 @@ write_to_testcase(afl_state_t *afl, void *mem, u32 len) {
new_size =
el->afl_custom_post_process(el->data, new_mem, new_size, &new_buf);
- }
-
- new_mem = new_buf;
-
- });
+ if (unlikely(!new_buf && new_size <= 0)) {
- if (unlikely(!new_buf && (new_size <= 0))) {
-
- FATAL("Custom_post_process failed (ret: %lu)", (long unsigned)new_size);
+ FATAL("Custom_post_process failed (ret: %lu)",
+ (long unsigned)new_size);
- } else if (likely(new_buf)) {
+ }
- /* everything as planned. use the new data. */
- afl_fsrv_write_to_testcase(&afl->fsrv, new_buf, new_size);
+ new_mem = new_buf;
- } else {
+ }
- /* custom mutators do not has a custom_post_process function */
- afl_fsrv_write_to_testcase(&afl->fsrv, mem, len);
+ });
- }
+ /* everything as planned. use the potentially new data. */
+ afl_fsrv_write_to_testcase(&afl->fsrv, new_buf, new_size);
} else {
@@ -188,16 +182,16 @@ static void write_with_gap(afl_state_t *afl, u8 *mem, u32 len, u32 skip_at,
new_size =
el->afl_custom_post_process(el->data, new_mem, new_size, &new_buf);
- if (unlikely(!new_buf || (new_size <= 0))) {
+ if (unlikely(!new_buf || new_size <= 0)) {
FATAL("Custom_post_process failed (ret: %lu)",
(long unsigned)new_size);
}
- }
+ new_mem = new_buf;
- new_mem = new_buf;
+ }
});