summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2014-12-18 10:19:32 +0000
committerDmitry Vyukov <dvyukov@google.com>2014-12-18 10:19:32 +0000
commite1881269f8cdcb89f4862bc428f9f4bfb633068b (patch)
tree204b142150d40b8299a7831270a2b45e639eea8b /compiler-rt/lib
parenta4cd69217bc54ec091c39bcdf0eb3852f78ee1ce (diff)
downloadbcm5719-llvm-e1881269f8cdcb89f4862bc428f9f4bfb633068b.tar.gz
bcm5719-llvm-e1881269f8cdcb89f4862bc428f9f4bfb633068b.zip
tsan: don't crash with NULL deref during reporting
tctx==NULL crash observed during deadlock reporting. There seems to be some bugs in the deadlock detector, but it is still useful to be more robust during reporting. llvm-svn: 224508
Diffstat (limited to 'compiler-rt/lib')
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc
index 0481b23b7be..ebaf8922a7e 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc
@@ -251,7 +251,9 @@ ThreadContext *IsThreadStackOrTls(uptr addr, bool *is_stack) {
void ScopedReport::AddThread(int unique_tid, bool suppressable) {
#ifndef SANITIZER_GO
- AddThread(FindThreadByUidLocked(unique_tid), suppressable);
+ const ThreadContext *tctx = FindThreadByUidLocked(unique_tid);
+ if (tctx)
+ AddThread(FindThreadByUidLocked(unique_tid), suppressable);
#endif
}
OpenPOWER on IntegriCloud