[llvm-commits] [compiler-rt] r150027 - in /compiler-rt/trunk/lib/asan: asan_allocator.cc tests/asan_test.cc

Kostya Serebryany kcc at google.com
Tue Feb 7 16:42:29 PST 2012


Author: kcc
Date: Tue Feb  7 18:42:29 2012
New Revision: 150027

URL: http://llvm.org/viewvc/llvm-project?rev=150027&view=rev
Log:
[asan] better warning messages for double-free bugs (provide allocation/deallocation stack traces)

Modified:
    compiler-rt/trunk/lib/asan/asan_allocator.cc
    compiler-rt/trunk/lib/asan/tests/asan_test.cc

Modified: compiler-rt/trunk/lib/asan/asan_allocator.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_allocator.cc?rev=150027&r1=150026&r2=150027&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_allocator.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_allocator.cc Tue Feb  7 18:42:29 2012
@@ -686,7 +686,7 @@
   if (m->chunk_state == CHUNK_QUARANTINE) {
     Report("ERROR: AddressSanitizer attempting double-free on %p:\n", ptr);
     stack->PrintStack();
-    m->DescribeAddress((uintptr_t)ptr, 1);
+    Describe((uintptr_t)ptr, 1);
     ShowStatsAndAbort();
   } else if (m->chunk_state != CHUNK_ALLOCATED) {
     Report("ERROR: AddressSanitizer attempting free on address which was not"

Modified: compiler-rt/trunk/lib/asan/tests/asan_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/tests/asan_test.cc?rev=150027&r1=150026&r2=150027&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/tests/asan_test.cc (original)
+++ compiler-rt/trunk/lib/asan/tests/asan_test.cc Tue Feb  7 18:42:29 2012
@@ -564,7 +564,11 @@
 }
 
 TEST(AddressSanitizer, DoubleFreeTest) {
-  EXPECT_DEATH(DoubleFree(), "ERROR: AddressSanitizer attempting double-free");
+  EXPECT_DEATH(DoubleFree(), ASAN_PCRE_DOTALL
+               "ERROR: AddressSanitizer attempting double-free"
+               ".*is located 0 bytes inside of 400-byte region"
+               ".*freed by thread T0 here"
+               ".*previously allocated by thread T0 here");
 }
 
 template<int kSize>





More information about the llvm-commits mailing list