summaryrefslogtreecommitdiff
path: root/lib/esan/esan.h
diff options
context:
space:
mode:
authorDerek Bruening <bruening@google.com>2016-07-06 21:04:48 +0000
committerDerek Bruening <bruening@google.com>2016-07-06 21:04:48 +0000
commit3df39427e495cb2ae84b9d7fc8541d4601f7b597 (patch)
tree7f4a0a5a7f6cb3aa17e1250fb82cf2c4891f1f4e /lib/esan/esan.h
parentccf627eb417a383adffda4d894a3776792bbbf4c (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.h1
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