diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-05-07 21:23:12 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-05-07 21:23:12 +0000 |
commit | 411e368e1f0b98e3ada0c77ba6ada0fc599a62f0 (patch) | |
tree | 19009e0294ab16058950721023b3d319e55dff1d /lib/msan/msan.cc | |
parent | 93ba2cdcb654136ef53bda8a7b1f13e1c8d5b745 (diff) |
[MSan] Fixup for r206983: MsanThread may be unavailable in signal handler: signals may be raised while thread is being destroyed
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@208250 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/msan.cc')
-rw-r--r-- | lib/msan/msan.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc index cb3498ef8..60004a133 100644 --- a/lib/msan/msan.cc +++ b/lib/msan/msan.cc @@ -237,7 +237,8 @@ const char *GetOriginDescrIfStack(u32 id, uptr *pc) { } u32 ChainOrigin(u32 id, StackTrace *stack) { - if (GetCurrentThread()->InSignalHandler()) + MsanThread *t = GetCurrentThread(); + if (t && t->InSignalHandler()) return id; uptr idx = Min(stack->size, kStackTraceMax - 1); stack->trace[idx] = TRACE_MAKE_CHAINED(id); |