summaryrefslogtreecommitdiff
path: root/lib/asan/asan_internal.h
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2016-06-16 20:06:06 +0000
committerKostya Serebryany <kcc@google.com>2016-06-16 20:06:06 +0000
commit5bb1631a69eb8b8f3c7eca7476e320372c967454 (patch)
treef3df59dc858ce59bb2219a6f4eb5414d594569dd /lib/asan/asan_internal.h
parented4063874ac289bc42a04347853716bb8b74f9de (diff)
[sanitizers] introduce yet another API function: __sanitizer_install_malloc_and_free_hooks
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@272943 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/asan_internal.h')
-rw-r--r--lib/asan/asan_internal.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/asan/asan_internal.h b/lib/asan/asan_internal.h
index 8a815e3c1..91101722c 100644
--- a/lib/asan/asan_internal.h
+++ b/lib/asan/asan_internal.h
@@ -110,10 +110,16 @@ bool PlatformHasDifferentMemcpyAndMemmove();
// Add convenient macro for interface functions that may be represented as
// weak hooks.
-#define ASAN_MALLOC_HOOK(ptr, size) \
- if (&__sanitizer_malloc_hook) __sanitizer_malloc_hook(ptr, size)
-#define ASAN_FREE_HOOK(ptr) \
- if (&__sanitizer_free_hook) __sanitizer_free_hook(ptr)
+#define ASAN_MALLOC_HOOK(ptr, size) \
+ do { \
+ if (&__sanitizer_malloc_hook) __sanitizer_malloc_hook(ptr, size); \
+ RunMallocHooks(ptr, size); \
+ } while (false)
+#define ASAN_FREE_HOOK(ptr) \
+ do { \
+ if (&__sanitizer_free_hook) __sanitizer_free_hook(ptr); \
+ RunFreeHooks(ptr); \
+ } while (false)
#define ASAN_ON_ERROR() \
if (&__asan_on_error) __asan_on_error()