[NFC][sanitizer] Move GET_MALLOC_STACK_TRACE closer to the use
GitOrigin-RevId: 651797f488682072fcb27ccb9da333b52b55ea7d
diff --git a/lib/hwasan/hwasan_allocation_functions.cpp b/lib/hwasan/hwasan_allocation_functions.cpp
index 850daed..aecc892 100644
--- a/lib/hwasan/hwasan_allocation_functions.cpp
+++ b/lib/hwasan/hwasan_allocation_functions.cpp
@@ -83,17 +83,17 @@
SANITIZER_INTERFACE_ATTRIBUTE
void __sanitizer_free(void *ptr) {
- GET_MALLOC_STACK_TRACE;
if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr)))
return;
+ GET_MALLOC_STACK_TRACE;
hwasan_free(ptr, &stack);
}
SANITIZER_INTERFACE_ATTRIBUTE
void __sanitizer_cfree(void *ptr) {
- GET_MALLOC_STACK_TRACE;
if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr)))
return;
+ GET_MALLOC_STACK_TRACE;
hwasan_free(ptr, &stack);
}
@@ -119,16 +119,15 @@
SANITIZER_INTERFACE_ATTRIBUTE
void *__sanitizer_calloc(uptr nmemb, uptr size) {
- GET_MALLOC_STACK_TRACE;
if (UNLIKELY(!hwasan_inited))
// Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym.
return AllocateFromLocalPool(nmemb * size);
+ GET_MALLOC_STACK_TRACE;
return hwasan_calloc(nmemb, size, &stack);
}
SANITIZER_INTERFACE_ATTRIBUTE
void *__sanitizer_realloc(void *ptr, uptr size) {
- GET_MALLOC_STACK_TRACE;
if (UNLIKELY(IsInDlsymAllocPool(ptr))) {
uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym;
uptr copy_size = Min(size, kDlsymAllocPoolSize - offset);
@@ -137,11 +136,13 @@
new_ptr = AllocateFromLocalPool(copy_size);
} else {
copy_size = size;
+ GET_MALLOC_STACK_TRACE;
new_ptr = hwasan_malloc(copy_size, &stack);
}
internal_memcpy(new_ptr, ptr, copy_size);
return new_ptr;
}
+ GET_MALLOC_STACK_TRACE;
return hwasan_realloc(ptr, size, &stack);
}
@@ -153,12 +154,12 @@
SANITIZER_INTERFACE_ATTRIBUTE
void *__sanitizer_malloc(uptr size) {
- GET_MALLOC_STACK_TRACE;
if (UNLIKELY(!hwasan_init_is_running))
ENSURE_HWASAN_INITED();
if (UNLIKELY(!hwasan_inited))
// Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym.
return AllocateFromLocalPool(size);
+ GET_MALLOC_STACK_TRACE;
return hwasan_malloc(size, &stack);
}
diff --git a/lib/memprof/memprof_malloc_linux.cpp b/lib/memprof/memprof_malloc_linux.cpp
index c7330f4..8b7d28e 100644
--- a/lib/memprof/memprof_malloc_linux.cpp
+++ b/lib/memprof/memprof_malloc_linux.cpp
@@ -102,19 +102,19 @@
}
INTERCEPTOR(void, free, void *ptr) {
- GET_STACK_TRACE_FREE;
if (UNLIKELY(IsInDlsymAllocPool(ptr))) {
DeallocateFromLocalPool(ptr);
return;
}
+ GET_STACK_TRACE_FREE;
memprof_free(ptr, &stack, FROM_MALLOC);
}
#if SANITIZER_INTERCEPT_CFREE
INTERCEPTOR(void, cfree, void *ptr) {
- GET_STACK_TRACE_FREE;
if (UNLIKELY(IsInDlsymAllocPool(ptr)))
return;
+ GET_STACK_TRACE_FREE;
memprof_free(ptr, &stack, FROM_MALLOC);
}
#endif // SANITIZER_INTERCEPT_CFREE
diff --git a/lib/msan/msan_interceptors.cpp b/lib/msan/msan_interceptors.cpp
index a79221f..06d88f3 100644
--- a/lib/msan/msan_interceptors.cpp
+++ b/lib/msan/msan_interceptors.cpp
@@ -221,18 +221,18 @@
#endif
INTERCEPTOR(void, free, void *ptr) {
- GET_MALLOC_STACK_TRACE;
if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return;
+ GET_MALLOC_STACK_TRACE;
MsanDeallocate(&stack, ptr);
}
#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD
INTERCEPTOR(void, cfree, void *ptr) {
- GET_MALLOC_STACK_TRACE;
if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return;
+ GET_MALLOC_STACK_TRACE;
MsanDeallocate(&stack, ptr);
}
-#define MSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree)
+# define MSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree)
#else
#define MSAN_MAYBE_INTERCEPT_CFREE
#endif
@@ -886,7 +886,6 @@
}
INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) {
- GET_MALLOC_STACK_TRACE;
if (UNLIKELY(IsInDlsymAllocPool(ptr))) {
uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym;
uptr copy_size = Min(size, kDlsymAllocPoolSize - offset);
@@ -895,11 +894,13 @@
new_ptr = AllocateFromLocalPool(copy_size);
} else {
copy_size = size;
+ GET_MALLOC_STACK_TRACE;
new_ptr = msan_malloc(copy_size, &stack);
}
internal_memcpy(new_ptr, ptr, copy_size);
return new_ptr;
}
+ GET_MALLOC_STACK_TRACE;
return msan_realloc(ptr, size, &stack);
}
@@ -909,16 +910,16 @@
}
INTERCEPTOR(void *, malloc, SIZE_T size) {
- GET_MALLOC_STACK_TRACE;
if (UNLIKELY(!msan_inited))
// Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym.
return AllocateFromLocalPool(size);
+ GET_MALLOC_STACK_TRACE;
return msan_malloc(size, &stack);
}
void __msan_allocated_memory(const void *data, uptr size) {
- GET_MALLOC_STACK_TRACE;
if (flags()->poison_in_malloc) {
+ GET_MALLOC_STACK_TRACE;
stack.tag = STACK_TRACE_TAG_POISON;
PoisonMemory(data, size, &stack);
}
@@ -930,8 +931,8 @@
}
void __sanitizer_dtor_callback(const void *data, uptr size) {
- GET_MALLOC_STACK_TRACE;
if (flags()->poison_in_dtor) {
+ GET_MALLOC_STACK_TRACE;
stack.tag = STACK_TRACE_TAG_POISON;
PoisonMemory(data, size, &stack);
}