Browse Source

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 years ago
parent
commit
a947d317a2
1 changed files with 1 additions and 0 deletions
  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;
 	return w;
 fail:
 fail:
 	unlock(mal.brk_lock);
 	unlock(mal.brk_lock);
+	errno = ENOMEM;
 	return 0;
 	return 0;
 }
 }