From 57fa87ce5e75b7fef0cf6bfa7af55f99114b9c06 Mon Sep 17 00:00:00 2001 From: Kuang-che Wu Date: Sat, 12 Apr 2025 09:26:57 +0000 Subject: [PATCH] only allocate SAND memory if enabled --- src/afl-fuzz.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 1170c303..871c3cea 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -1756,8 +1756,21 @@ int main(int argc, char **argv_orig, char **envp) { } - afl->n_fuzz_dup = ck_alloc(N_FUZZ_SIZE_BITMAP * sizeof(u8)); - afl->simplified_n_fuzz = ck_alloc(N_FUZZ_SIZE_BITMAP * sizeof(u8)); + if (afl->san_binary_length) { + + if (afl->san_abstraction == UNIQUE_TRACE) { + + afl->n_fuzz_dup = ck_alloc(N_FUZZ_SIZE_BITMAP * sizeof(u8)); + + } + + if (afl->san_abstraction == SIMPLIFY_TRACE) { + + afl->simplified_n_fuzz = ck_alloc(N_FUZZ_SIZE_BITMAP * sizeof(u8)); + + } + + } if (get_afl_env("AFL_NO_FORKSRV")) { afl->no_forkserver = 1; } if (get_afl_env("AFL_NO_CPU_RED")) { afl->no_cpu_meter_red = 1; } @@ -3616,6 +3629,10 @@ stop_fuzzing: } + ck_free(afl->n_fuzz); + ck_free(afl->n_fuzz_dup); + ck_free(afl->simplified_n_fuzz); + if (afl->orig_cmdline) { ck_free(afl->orig_cmdline); } ck_free(afl->fsrv.target_path); ck_free(afl->fsrv.out_file);