[llvm-commits] [compiler-rt] r168985 - /compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc
Dmitry Vyukov
dvyukov at google.com
Thu Nov 29 22:39:01 PST 2012
Author: dvyukov
Date: Fri Nov 30 00:39:01 2012
New Revision: 168985
URL: http://llvm.org/viewvc/llvm-project?rev=168985&view=rev
Log:
tsan: fix bug that leads to spurious use-after-free reports
Modified:
compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc?rev=168985&r1=168984&r2=168985&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc Fri Nov 30 00:39:01 2012
@@ -519,6 +519,7 @@
void MemoryRangeFreed(ThreadState *thr, uptr pc, uptr addr, uptr size) {
MemoryAccessRange(thr, pc, addr, size, true);
Shadow s(thr->fast_state);
+ s.ClearIgnoreBit();
s.MarkAsFreed();
s.SetWrite(true);
s.SetAddr0AndSizeLog(0, 3);
@@ -527,6 +528,7 @@
void MemoryRangeImitateWrite(ThreadState *thr, uptr pc, uptr addr, uptr size) {
Shadow s(thr->fast_state);
+ s.ClearIgnoreBit();
s.SetWrite(true);
s.SetAddr0AndSizeLog(0, 3);
MemoryRangeSet(thr, pc, addr, size, s.raw());
More information about the llvm-commits
mailing list