From 1136e887bdf77ed64bd3eac28bf7f86705dd2a6d Mon Sep 17 00:00:00 2001 From: Dominik Maier Date: Mon, 9 Mar 2020 21:34:11 +0100 Subject: now wiht 90% less leaks --- src/afl-fuzz-cmplog.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/afl-fuzz-cmplog.c') diff --git a/src/afl-fuzz-cmplog.c b/src/afl-fuzz-cmplog.c index 3749330b..0a4c3a9e 100644 --- a/src/afl-fuzz-cmplog.c +++ b/src/afl-fuzz-cmplog.c @@ -151,7 +151,13 @@ void init_cmplog_forkserver(afl_state_t *afl) { setenv("___AFL_EINS_ZWEI_POLIZEI___", "1", 1); - if (!afl->qemu_mode) afl->argv[0] = afl->cmplog_binary; + if (!afl->qemu_mode && afl->argv[0] != afl->cmplog_binary) { + + ck_free(afl->argv[0]); + afl->argv[0] = afl->cmplog_binary; + + } + execv(afl->argv[0], afl->argv); /* Use a distinctive bitmap signature to tell the parent about execv() @@ -448,7 +454,13 @@ u8 run_cmplog_target(afl_state_t *afl, u32 timeout) { setenv("___AFL_EINS_ZWEI_POLIZEI___", "1", 1); - if (!afl->qemu_mode) afl->argv[0] = afl->cmplog_binary; + if (!afl->qemu_mode && afl->argv[0] != afl->cmplog_binary) { + + ck_free(afl->argv[0]); + afl->argv[0] = afl->cmplog_binary; + + } + execv(afl->argv[0], afl->argv); /* Use a distinctive bitmap value to tell the parent about execv() -- cgit 1.4.1