diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2012-09-02 12:04:51 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2012-09-02 12:04:51 +0000 |
commit | aaac6e206453574d0130f2ae8d743f630d0c0a42 (patch) | |
tree | a994ed7b7bb60b9aec04e763630d57ebd15a2cb2 | |
parent | 41e8153c4a29b28bc7c80d35bc1d43438acdd4e7 (diff) |
tsan: do not crash with obscure message if a user passes invalid arguments to malloc/free/memset/etc
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@163092 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/tsan/rtl/tsan_rtl.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/tsan/rtl/tsan_rtl.cc b/lib/tsan/rtl/tsan_rtl.cc index 962c07a5b..3860073f7 100644 --- a/lib/tsan/rtl/tsan_rtl.cc +++ b/lib/tsan/rtl/tsan_rtl.cc @@ -433,9 +433,11 @@ static void MemoryRangeSet(ThreadState *thr, uptr pc, uptr addr, uptr size, addr += offset; size -= offset; } - CHECK_EQ(addr % 8, 0); - CHECK(IsAppMem(addr)); - CHECK(IsAppMem(addr + size - 1)); + DCHECK_EQ(addr % 8, 0); + // If a user passes some insane arguments (memset(0)), + // let it just crash as usual. + if (!IsAppMem(addr) || !IsAppMem(addr + size - 1)) + return; (void)thr; (void)pc; // Some programs mmap like hundreds of GBs but actually used a small part. |