Parcourir la source

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.
Rich Felker il y a 4 ans
Parent
commit
1fc67fc117
1 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 2 1
      src/malloc/oldmalloc/aligned_alloc.c

+ 2 - 1
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;
 	}