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:
parent
8b8ebdd9dd
commit
e9c456e15f
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue