diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-01-30 15:00:17 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-01-30 15:00:17 +0000 |
commit | 7656b3500d4f6273e7a5eee05c01fe56386dcda4 (patch) | |
tree | 2d89dd8222c5d7304aedd88ddb135f671cf370d2 /lib/libc/stdlib/malloc.c | |
parent | 271aee47ecc618b73de2a5b36df0d9e9d33f9ccc (diff) |
Notes
Diffstat (limited to 'lib/libc/stdlib/malloc.c')
-rw-r--r-- | lib/libc/stdlib/malloc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c index 3cd58f75bd436..2f890303ea962 100644 --- a/lib/libc/stdlib/malloc.c +++ b/lib/libc/stdlib/malloc.c @@ -326,6 +326,8 @@ map_pages(size_t pages) result = (caddr_t)pageround((u_long)sbrk(0)); tail = result + (pages << malloc_pageshift); + if (tail < result) + return 0; if (brk(tail)) { #ifdef EXTRA_SANITY @@ -745,6 +747,8 @@ imalloc(size_t size) if ((size + malloc_pagesize) < size) /* Check for overflow */ result = 0; + else if ((size + malloc_pagesize) >= (uintptr_t)page_dir) + result = 0; else if (size <= malloc_maxsize) result = malloc_bytes(size); else |