diff options
author | van Hauser <vh@thc.org> | 2023-11-09 15:13:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-09 15:13:51 +0100 |
commit | 61e27c6b54f7641a168b6acc6ecffb1754c10918 (patch) | |
tree | a82934c35bd84b2893b71646080e46433083d516 /src/afl-common.c | |
parent | 85c5b5218c6a7b2289f309fbd1625a5d0a602a00 (diff) | |
parent | a6efdfdb15c8a48967ff773a0ca530a68544cd8f (diff) | |
download | afl++-61e27c6b54f7641a168b6acc6ecffb1754c10918.tar.gz |
Merge pull request #1906 from AFLplusplus/dev
Dev
Diffstat (limited to 'src/afl-common.c')
-rw-r--r-- | src/afl-common.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/afl-common.c b/src/afl-common.c index b4143a1b..ba498b3b 100644 --- a/src/afl-common.c +++ b/src/afl-common.c @@ -98,12 +98,27 @@ void set_sanitizer_defaults() { } /* LSAN does not support abort_on_error=1. (is this still true??) */ + u8 should_detect_leaks = 0; if (!have_lsan_options) { u8 buf[2048] = ""; if (!have_san_options) { strcpy(buf, default_options); } - strcat(buf, "exitcode=" STRINGIFY(LSAN_ERROR) ":fast_unwind_on_malloc=0:print_suppressions=0:detect_leaks=1:malloc_context_size=30:"); + if (have_asan_options) { + + if (NULL != strstr(have_asan_options, "detect_leaks=0")) { + + strcat(buf, "exitcode=" STRINGIFY(LSAN_ERROR) ":fast_unwind_on_malloc=0:print_suppressions=0:detect_leaks=0:malloc_context_size=0:"); + + } else { + + should_detect_leaks = 1; + strcat(buf, "exitcode=" STRINGIFY(LSAN_ERROR) ":fast_unwind_on_malloc=0:print_suppressions=0:detect_leaks=1:malloc_context_size=30:"); + + } + + } + setenv("LSAN_OPTIONS", buf, 1); } @@ -112,7 +127,15 @@ void set_sanitizer_defaults() { if (!have_lsan_options) { - strcat(default_options, "detect_leaks=0:malloc_context_size=0:"); + if (should_detect_leaks) { + + strcat(default_options, "detect_leaks=1:malloc_context_size=30:"); + + } else { + + strcat(default_options, "detect_leaks=0:malloc_context_size=0:"); + + } } |