summaryrefslogtreecommitdiff
path: root/lib/msan/msan.cc
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2014-05-07 21:23:12 +0000
committerAlexey Samsonov <samsonov@google.com>2014-05-07 21:23:12 +0000
commit411e368e1f0b98e3ada0c77ba6ada0fc599a62f0 (patch)
tree19009e0294ab16058950721023b3d319e55dff1d /lib/msan/msan.cc
parent93ba2cdcb654136ef53bda8a7b1f13e1c8d5b745 (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.cc3
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);