diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2014-12-18 10:19:32 +0000 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2014-12-18 10:19:32 +0000 |
| commit | e1881269f8cdcb89f4862bc428f9f4bfb633068b (patch) | |
| tree | 204b142150d40b8299a7831270a2b45e639eea8b /compiler-rt/lib | |
| parent | a4cd69217bc54ec091c39bcdf0eb3852f78ee1ce (diff) | |
| download | bcm5719-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.cc | 4 |
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 } |

