[compiler-rt] c1903ba - [hwasan] Move RunFreeHooks call
Jin Xin Ng via llvm-commits
llvm-commits at lists.llvm.org
Tue May 23 10:03:04 PDT 2023
Author: Jin Xin Ng
Date: 2023-05-23T17:02:51Z
New Revision: c1903ba5eacd2dd8880077b5ba6449c1102de55c
URL: https://github.com/llvm/llvm-project/commit/c1903ba5eacd2dd8880077b5ba6449c1102de55c
DIFF: https://github.com/llvm/llvm-project/commit/c1903ba5eacd2dd8880077b5ba6449c1102de55c.diff
LOG: [hwasan] Move RunFreeHooks call
Ensures a subsequent call (via an external caller) to
__sanitizer_get_allocated_size via hooks will return a valid size.
This allows a faster version of __sanitizer_get_allocated_size
to be implemented, which can skip checks.
Test to ensure RunFreeHooks' call order will come with
__sanitizer_get_allocated_size_fast
Differential Revision: https://reviews.llvm.org/D151151
Added:
Modified:
compiler-rt/lib/hwasan/hwasan_allocator.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/hwasan/hwasan_allocator.cpp b/compiler-rt/lib/hwasan/hwasan_allocator.cpp
index 3b59741df6e36..e43c0990c55fc 100644
--- a/compiler-rt/lib/hwasan/hwasan_allocator.cpp
+++ b/compiler-rt/lib/hwasan/hwasan_allocator.cpp
@@ -288,8 +288,6 @@ static bool CheckInvalidFree(StackTrace *stack, void *untagged_ptr,
static void HwasanDeallocate(StackTrace *stack, void *tagged_ptr) {
CHECK(tagged_ptr);
- RunFreeHooks(tagged_ptr);
-
void *untagged_ptr = UntagPtr(tagged_ptr);
if (CheckInvalidFree(stack, untagged_ptr, tagged_ptr))
@@ -304,6 +302,9 @@ static void HwasanDeallocate(StackTrace *stack, void *tagged_ptr) {
ReportInvalidFree(stack, reinterpret_cast<uptr>(tagged_ptr));
return;
}
+
+ RunFreeHooks(tagged_ptr);
+
uptr orig_size = meta->GetRequestedSize();
u32 free_context_id = StackDepotPut(*stack);
u32 alloc_context_id = meta->GetAllocStackId();
More information about the llvm-commits
mailing list