llvm-project/compiler-rt/lib
Derek Bruening a601c2ada2 [esan] Ensure internal_sigaction() bypasses interceptors
Summary:
Implements real_sigaction() which it turns out is required for
internal_sigaction() to bypass the libc interceptors.

Without real_sigaction(), our internal_sigaction() calls during init happen
to work due to the EsanDuringInit check in COMMON_INTERCEPTOR_ENTER (though
even here it does not feel right for an "internal_" call to go through the
interceptor).  The real problem is when we call internal_sigaction() after
we're initialized, which only happens on an unhandled SIGSEGV for which the
app has no handler: then we'll spin in an infinite loop as our attempts to
remove our own handler repeatedly fail.  It's not easy to add a test for
that, unfortunately.

Reviewers: aizatsky

Subscribers: vitalybuka, zhaoqin, kcc, eugenis, llvm-commits, kubabrecka

Differential Revision: http://reviews.llvm.org/D20832

llvm-svn: 271626
2016-06-03 04:30:47 +00:00
..
BlocksRuntime Move tests for BlocksRuntime and builtins to corresponding directories under test/ 2014-02-14 09:47:31 +00:00
asan [asan] fix arm build 2016-06-02 04:01:58 +00:00
builtins [CMake] Update to requiring CMake 3.4.3 2016-05-31 20:21:42 +00:00
cfi [sancov] common flags initialization. 2016-03-18 19:28:07 +00:00
dfsan [sanitizer] [SystemZ] Abort if the kernel might be vulnerable to CVE-2016-2143. 2016-04-27 17:42:00 +00:00
esan [esan] Ensure internal_sigaction() bypasses interceptors 2016-06-03 04:30:47 +00:00
interception This patch is activating the build of Asan on Windows 64-bits. 2016-05-27 21:29:31 +00:00
lsan [LSAN] Fix test swapcontext.cc on MIPS 2016-05-18 06:09:26 +00:00
msan __builtin_ia32_storeups is no more. Replace it with xmmintrin.h intrinsic. 2016-05-31 09:16:40 +00:00
profile [profile] Fix PR/27917 2016-05-31 23:12:13 +00:00
safestack [compiler-rt] [safestack] Enable for aarch64 2015-12-11 17:38:38 +00:00
sanitizer_common [esan] Ensure internal_sigaction() bypasses interceptors 2016-06-03 04:30:47 +00:00
stats [Sanitizer] Introduce ListOfModules object and use it to replace GetListOfModules(). 2016-02-22 18:52:51 +00:00
tsan tsan: clean up dynamic TLS memory between reuse 2016-06-02 19:18:22 +00:00
ubsan UBSan: crash less often on corrupted Vtables. 2016-06-02 18:36:12 +00:00
CMakeLists.txt [esan] EfficiencySanitizer base runtime library 2016-04-21 21:32:25 +00:00
Makefile.mk Remove autoconf support for building runtime libraries. 2016-01-26 21:31:12 +00:00