mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 02:58:08 +00:00
Add support for standalone leak-sanitizer, introducting the environment
variable AFL_USE_LSAN. AFL_USE_LSAN introduces the macro __AFL_CHECK_LEAK() which will check for a memory leak when the macro is run. This is especially helpful when using __AFL_LOOP(). If __AFL_LEAK_CHECK() is not used when AFL_USE_LSAN=1 is set, the leak checker will run when the program exits.
This commit is contained in:
@ -2466,6 +2466,20 @@ void check_asan_opts(afl_state_t *afl) {
|
||||
|
||||
}
|
||||
|
||||
x = get_afl_env("LSAN_OPTIONS");
|
||||
|
||||
if (x) {
|
||||
|
||||
if (!strstr(x, "exit_code=" STRINGIFY(LSAN_ERROR))) {
|
||||
|
||||
FATAL("Custom LSAN_OPTIONS set without exit_code=" STRINGIFY(
|
||||
LSAN_ERROR) " - please fix!");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* Handle stop signal (Ctrl-C, etc). */
|
||||
@ -2711,7 +2725,8 @@ void check_binary(afl_state_t *afl, u8 *fname) {
|
||||
}
|
||||
|
||||
if (memmem(f_data, f_len, "__asan_init", 11) ||
|
||||
memmem(f_data, f_len, "__msan_init", 11)) {
|
||||
memmem(f_data, f_len, "__msan_init", 11) ||
|
||||
memmem(f_data, f_len, "__lsan_init", 11)) {
|
||||
|
||||
afl->fsrv.uses_asan = 1;
|
||||
|
||||
|
Reference in New Issue
Block a user