[asan] Unpoison signal alternate stack.
Summary: Before unwinding the stack, `__asan_handle_no_return` is supposed to unpoison the entire stack - that is, remove the entries in the shadow memory corresponding to stack (e.g. redzone markers around variables). This does not work correctly if `__asan_handle_no_return` is called from the alternate stack used in signal handlers, because the stack top is read from a cache, which yields the default stack top instead of the signal alternate stack top. It is also possible to jump between the default stack and the signal alternate stack. Therefore, __asan_handle_no_return needs to unpoison both. Reviewers: vitalybuka, kubamracek, kcc, eugenis Reviewed By: vitalybuka Subscribers: phosek, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D76986
Loading
Please register or sign in to comment