From: Rich Felker Date: Thu, 11 Jun 2020 02:05:03 +0000 (-0400) Subject: only disable aligned_alloc if malloc was replaced but it wasn't X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1fc67fc117f9d25d240d46bbef78ebccacec7097;p=oweals%2Fmusl.git 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. --- 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; }