[compiler-rt] r235701 - [Sanitizers] Do not call internal_sigdelset() on non-Linux
Viktor Kutuzov
vkutuzov at accesssoftek.com
Fri Apr 24 00:48:26 PDT 2015
Author: vkutuzov
Date: Fri Apr 24 02:48:26 2015
New Revision: 235701
URL: http://llvm.org/viewvc/llvm-project?rev=235701&view=rev
Log:
[Sanitizers] Do not call internal_sigdelset() on non-Linux
Differential Revision: http://reviews.llvm.org/D9220
Modified:
compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=235701&r1=235700&r2=235701&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Fri Apr 24 02:48:26 2015
@@ -915,9 +915,11 @@ void *internal_start_thread(void(*func)(
// 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);
More information about the llvm-commits
mailing list