diff options
author | Derek Bruening <bruening@google.com> | 2016-07-06 21:04:48 +0000 |
---|---|---|
committer | Derek Bruening <bruening@google.com> | 2016-07-06 21:04:48 +0000 |
commit | 3df39427e495cb2ae84b9d7fc8541d4601f7b597 (patch) | |
tree | 7f4a0a5a7f6cb3aa17e1250fb82cf2c4891f1f4e /lib/esan/esan.h | |
parent | ccf627eb417a383adffda4d894a3776792bbbf4c (diff) |
[esan|wset] Ensure SIGSEGV is not blocked
Summary:
Adds interception of sigprocmask and pthread_sigmask to esan so that the
working set tool can prevent SIGSEGV from being blocked. A blocked SIGSEGV
results in crashes due to our lazy shadow page allocation scheme.
Adds new sanitizer helper functions internal_sigemptyset and
internal_sigismember.
Adds a test to workingset-signal-posix.cpp.
Reviewers: aizatsky
Subscribers: vitalybuka, zhaoqin, kcc, eugenis, llvm-commits, kubabrecka
Differential Revision: http://reviews.llvm.org/D22063
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@274672 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/esan/esan.h')
-rw-r--r-- | lib/esan/esan.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/esan/esan.h b/lib/esan/esan.h index a5db5dfb3..4171522db 100644 --- a/lib/esan/esan.h +++ b/lib/esan/esan.h @@ -51,6 +51,7 @@ uptr checkMmapResult(uptr Addr, SIZE_T Size); // The return value indicates whether to call the real version or not. bool processSignal(int SigNum, void (*Handler)(int), void (**Result)(int)); bool processSigaction(int SigNum, const void *Act, void *OldAct); +bool processSigprocmask(int How, void *Set, void *OldSet); } // namespace __esan |