浏览代码

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 4 年之前
父节点
当前提交
1fc67fc117
共有 1 个文件被更改,包括 2 次插入1 次删除
  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;
 	}