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.
This commit is contained in:
Rich Felker 2020-06-10 22:05:03 -04:00
parent e9f4fd1185
commit 1fc67fc117

View File

@ -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;
}