Я подозреваю, что вы используете LD_PRELOAD=libasan.so
, что приведет к предварительной загрузке среды выполнения Asan в дочерние процессы. Это приведет к некоторой ограниченной форме очистки, поскольку среда выполнения будет перехватывать и очищать вызовы стандартных функций libc, таких как malloc
или memcpy
.
Нет встроенного способа отключить это внутри Асана, поэтому лучше всего будет сбросить LD_PRELOAD
при запуске программы:
int main() {
# ifdef __SANITIZE_ADDRESS__
// Do not sanitize child processes
// TODO: strip only libasan.so, keep everything else
unsetenv("LD_PRELOAD");
# endif