tsan: treat SIGSYS as synchronous signal

It is required for chromium sandboxing code.
From the description it seems to be indeed synchronous -- called back on syscall with incorrect arguments,
but seems to be unused in practice. So this should be fine.

llvm-svn: 186579
This commit is contained in:
Dmitry Vyukov 2013-07-18 13:14:11 +00:00
parent 8b8ebdd9dd
commit e9c456e15f
1 changed files with 2 additions and 1 deletions

View File

@ -77,6 +77,7 @@ const int SIGFPE = 8;
const int SIGSEGV = 11; const int SIGSEGV = 11;
const int SIGPIPE = 13; const int SIGPIPE = 13;
const int SIGBUS = 7; const int SIGBUS = 7;
const int SIGSYS = 31;
void *const MAP_FAILED = (void*)-1; void *const MAP_FAILED = (void*)-1;
const int PTHREAD_BARRIER_SERIAL_THREAD = -1; const int PTHREAD_BARRIER_SERIAL_THREAD = -1;
const int MAP_FIXED = 0x10; const int MAP_FIXED = 0x10;
@ -1608,7 +1609,7 @@ void ALWAYS_INLINE rtl_generic_sighandler(bool sigact, int sig,
SignalContext *sctx = SigCtx(thr); SignalContext *sctx = SigCtx(thr);
// Don't mess with synchronous signals. // Don't mess with synchronous signals.
if (sig == SIGSEGV || sig == SIGBUS || sig == SIGILL || if (sig == SIGSEGV || sig == SIGBUS || sig == SIGILL ||
sig == SIGABRT || sig == SIGFPE || sig == SIGPIPE || sig == SIGABRT || sig == SIGFPE || sig == SIGPIPE || sig == SIGSYS ||
// If we are sending signal to ourselves, we must process it now. // If we are sending signal to ourselves, we must process it now.
(sctx && sig == sctx->int_signal_send) || (sctx && sig == sctx->int_signal_send) ||
// If we are in blocking function, we can safely process it now // If we are in blocking function, we can safely process it now