aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--malloc/hooks.c10
-rw-r--r--malloc/malloc.c10
2 files changed, 8 insertions, 12 deletions
diff --git a/malloc/hooks.c b/malloc/hooks.c
index d8e304c..9474e19 100644
--- a/malloc/hooks.c
+++ b/malloc/hooks.c
@@ -262,11 +262,10 @@ free_check (void *mem, const void *caller)
int err = errno;
-#ifdef USE_MTAG
/* Quickly check that the freed pointer matches the tag for the memory.
This gives a useful double-free detection. */
- *(volatile char *)mem;
-#endif
+ if (__glibc_unlikely (mtag_enabled))
+ *(volatile char *)mem;
__libc_lock_lock (main_arena.mutex);
p = mem2chunk_check (mem, NULL);
@@ -310,11 +309,10 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
return NULL;
}
-#ifdef USE_MTAG
/* Quickly check that the freed pointer matches the tag for the memory.
This gives a useful double-free detection. */
- *(volatile char *)oldmem;
-#endif
+ if (__glibc_unlikely (mtag_enabled))
+ *(volatile char *)oldmem;
__libc_lock_lock (main_arena.mutex);
const mchunkptr oldp = mem2chunk_check (oldmem, &magic_p);
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 9eadc0c..80e4eb6 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -3286,11 +3286,10 @@ __libc_free (void *mem)
if (mem == 0) /* free(0) has no effect */
return;
-#ifdef USE_MTAG
/* Quickly check that the freed pointer matches the tag for the memory.
This gives a useful double-free detection. */
- *(volatile char *)mem;
-#endif
+ if (__glibc_unlikely (mtag_enabled))
+ *(volatile char *)mem;
int err = errno;
@@ -3352,11 +3351,10 @@ __libc_realloc (void *oldmem, size_t bytes)
if (oldmem == 0)
return __libc_malloc (bytes);
-#ifdef USE_MTAG
/* Perform a quick check to ensure that the pointer's tag matches the
memory's tag. */
- *(volatile char*) oldmem;
-#endif
+ if (__glibc_unlikely (mtag_enabled))
+ *(volatile char*) oldmem;
/* chunk corresponding to oldmem */
const mchunkptr oldp = mem2chunk (oldmem);