diff options
| author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2015-04-24 07:48:26 +0000 |
|---|---|---|
| committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2015-04-24 07:48:26 +0000 |
| commit | 8dee8575c6a16f795b19e18192258588a3f14f39 (patch) | |
| tree | 72149f50922b591650317a62e1c005345e6800ef /compiler-rt/lib/sanitizer_common | |
| parent | bce9c2e263f90cf54ad01803b15a076cf466abb9 (diff) | |
| download | bcm5719-llvm-8dee8575c6a16f795b19e18192258588a3f14f39.tar.gz bcm5719-llvm-8dee8575c6a16f795b19e18192258588a3f14f39.zip | |
[Sanitizers] Do not call internal_sigdelset() on non-Linux
Differential Revision: http://reviews.llvm.org/D9220
llvm-svn: 235701
Diffstat (limited to 'compiler-rt/lib/sanitizer_common')
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_linux.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc index 3e343470aa8..c1e5ef3b654 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc @@ -915,9 +915,11 @@ void *internal_start_thread(void(*func)(void *arg), void *arg) { // Start the thread with signals blocked, otherwise it can steal user signals. __sanitizer_sigset_t set, old; internal_sigfillset(&set); +#if SANITIZER_LINUX // Glibc uses SIGSETXID signal during setuid call. If this signal is blocked // on any thread, setuid call hangs (see test/tsan/setuid.c). internal_sigdelset(&set, 33); +#endif internal_sigprocmask(SIG_SETMASK, &set, &old); void *th; real_pthread_create(&th, 0, (void*(*)(void *arg))func, arg); |

