From 79934e855fc58aefde498cd0564796cdd6ccbc59 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Tue, 5 Apr 2022 12:40:31 +0200 Subject: vppinfra: refactor address sanitizer Type: refactor Change-Id: I5ca142ec1557d5b5c3806b43553ad9d3b5ea1112 Signed-off-by: Damjan Marion --- src/vppinfra/mem.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/vppinfra/mem.h') diff --git a/src/vppinfra/mem.h b/src/vppinfra/mem.h index e33ab37e877..75015d59a4a 100644 --- a/src/vppinfra/mem.h +++ b/src/vppinfra/mem.h @@ -47,7 +47,9 @@ #include #include /* memcpy, clib_memset */ -#include +#ifdef CLIB_SANITIZE_ADDR +#include +#endif #define CLIB_MAX_MHEAPS 256 #define CLIB_MAX_NUMAS 16 @@ -163,6 +165,22 @@ extern clib_mem_main_t clib_mem_main; /* Unspecified NUMA socket */ #define VEC_NUMA_UNSPECIFIED (0xFF) +static_always_inline void +clib_mem_poison (const void volatile *p, uword s) +{ +#ifdef CLIB_SANITIZE_ADDR + ASAN_POISON_MEMORY_REGION (p, s); +#endif +} + +static_always_inline void +clib_mem_unpoison (const void volatile *p, uword s) +{ +#ifdef CLIB_SANITIZE_ADDR + ASAN_UNPOISON_MEMORY_REGION (p, s); +#endif +} + always_inline clib_mem_heap_t * clib_mem_get_per_cpu_heap (void) { @@ -336,7 +354,7 @@ clib_mem_vm_alloc (uword size) if (mmap_addr == (void *) -1) mmap_addr = 0; else - CLIB_MEM_UNPOISON (mmap_addr, size); + clib_mem_unpoison (mmap_addr, size); return mmap_addr; } -- cgit 1.2.3-korg