From 1fc67fc117f9d25d240d46bbef78ebccacec7097 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 10 Jun 2020 22:05:03 -0400 Subject: only disable aligned_alloc if malloc was replaced but it wasn't it both malloc and aligned_alloc have been replaced but the internal aligned_alloc still gets called, the replacement is a wrapper of some sort. it's not clear if this usage should be officially supported, but it's at least a plausibly interesting debugging usage, and easy to do. it should not be relied upon unless it's documented as supported at some later time. --- src/malloc/oldmalloc/aligned_alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/malloc/oldmalloc/aligned_alloc.c b/src/malloc/oldmalloc/aligned_alloc.c index e06c76ed..4adca3b4 100644 --- a/src/malloc/oldmalloc/aligned_alloc.c +++ b/src/malloc/oldmalloc/aligned_alloc.c @@ -12,7 +12,8 @@ void *aligned_alloc(size_t align, size_t len) return 0; } - if (len > SIZE_MAX - align || __malloc_replaced) { + if (len > SIZE_MAX - align || + (__malloc_replaced && !__aligned_alloc_replaced)) { errno = ENOMEM; return 0; } -- cgit v1.2.1