From a8a85166d81f573af7ff325fdf93dd8bdfdeddbf Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Wed, 16 Sep 2020 00:27:13 -0700 Subject: [PATCH] Revert "[Asan] Accept __lsan_ignore_object for redzone pointer" We still keep AddrIsInside. This reverts commit 1d70984fa220f966ddcecd7906c5f10368fe1b93. --- compiler-rt/lib/asan/asan_allocator.cpp | 6 ++++-- compiler-rt/test/asan/TestCases/lsan_annotations.cpp | 7 ++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/compiler-rt/lib/asan/asan_allocator.cpp b/compiler-rt/lib/asan/asan_allocator.cpp index 691f64c0ef36..58b496a3ca4b 100644 --- a/compiler-rt/lib/asan/asan_allocator.cpp +++ b/compiler-rt/lib/asan/asan_allocator.cpp @@ -1172,8 +1172,10 @@ void ForEachChunk(ForEachChunkCallback callback, void *arg) { IgnoreObjectResult IgnoreObjectLocked(const void *p) { uptr addr = reinterpret_cast(p); __asan::AsanChunk *m = __asan::instance.GetAsanChunkByAddr(addr); - if (!m || (atomic_load(&m->chunk_state, memory_order_acquire) != - __asan::CHUNK_ALLOCATED)) { + if (!m || + (atomic_load(&m->chunk_state, memory_order_acquire) != + __asan::CHUNK_ALLOCATED) || + !m->AddrIsInside(addr)) { return kIgnoreObjectInvalid; } if (m->lsan_tag == kIgnored) diff --git a/compiler-rt/test/asan/TestCases/lsan_annotations.cpp b/compiler-rt/test/asan/TestCases/lsan_annotations.cpp index ce7c19b8f2d0..158c2fdf9f48 100644 --- a/compiler-rt/test/asan/TestCases/lsan_annotations.cpp +++ b/compiler-rt/test/asan/TestCases/lsan_annotations.cpp @@ -5,7 +5,7 @@ #include #include -int *x, *y, *z; +int *x, *y; int main() { x = new int; @@ -16,9 +16,6 @@ int main() { y = new int; } - z = new int; - __lsan_ignore_object(z - 1); - - x = y = z = nullptr; + x = y = nullptr; return 0; }