瀏覽代碼

fix failure of malloc to set errno on heap (brk) exhaustion

I wrongly assumed the brk syscall would set errno, but on failure it
returns the old value of the brk rather than an error code.
Rich Felker 11 年之前
父節點
當前提交
a947d317a2
共有 1 個文件被更改,包括 1 次插入0 次删除
  1. 1 0
      src/malloc/malloc.c

+ 1 - 0
src/malloc/malloc.c

@@ -177,6 +177,7 @@ static struct chunk *expand_heap(size_t n)
 	return w;
 fail:
 	unlock(mal.brk_lock);
+	errno = ENOMEM;
 	return 0;
 }