You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We recently encountered this issue in our sanitizer-related project (Clang14 on Ubuntu 20.04). I see the status is still 'open' for this issue, does it mean that there will be a formal fix other than using ASAN_OPTIONS="use_sigaltstack=0"?
The problem of using ASAN_OPTIONS="use_sigaltstack=0", is that it cannot control sigaltstack per thread! All compiler_rt threads will have "use_sigaltstack=0" even if user app doesn't install sigaltstack for that thread!
Any comment about the future plan will be greatly appreciated, as we will use it as a guidance to plan our project which has dependency on this!
Clang7, Ubuntu
(also verified with Clang6 system clang)
I install a 1MiB buffer as sigaltstack in a new std::thread.
That std::thread is cleaned up, and the 1MiB buffer is free()d.
So the buffer is no longer registered as the sigaltstack of any thread.
At the end of the program, asan complains that it cannot unmap the 1MiB buffer.
If I uninstall the sigaltstack with SS_DISABLE from the std::thread before its execution completes, then ASAN has no problem.
Here's a small repro:
https://github.com/BillyDonahue/mongo-experimental/blob/master/asan-sigaltstack-dealloc/asan_test.cpp
The text was updated successfully, but these errors were encountered: