summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorotto <>2003-07-13 08:35:44 +0000
committerotto <>2003-07-13 08:35:44 +0000
commit5bd302f63a71af85f1fa22b787d4c05dacd277ea (patch)
tree285e3fc33718a1f4b6fee4cd4fffe1b2371a3b53 /src
parente009bddf83a2ff6730df17373637db7afcc6e025 (diff)
downloadopenbsd-5bd302f63a71af85f1fa22b787d4c05dacd277ea.tar.gz
openbsd-5bd302f63a71af85f1fa22b787d4c05dacd277ea.tar.bz2
openbsd-5bd302f63a71af85f1fa22b787d4c05dacd277ea.zip
Fix two cases where malloc() returns NULL but does not set errno to ENOMEM.
ok tdeval@ henning@ millert@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libc/stdlib/malloc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c
index e129473203..3ce107857a 100644
--- a/src/lib/libc/stdlib/malloc.c
+++ b/src/lib/libc/stdlib/malloc.c
@@ -8,7 +8,7 @@
8 */ 8 */
9 9
10#if defined(LIBC_SCCS) && !defined(lint) 10#if defined(LIBC_SCCS) && !defined(lint)
11static char rcsid[] = "$OpenBSD: malloc.c,v 1.56 2003/05/14 17:46:39 tdeval Exp $"; 11static char rcsid[] = "$OpenBSD: malloc.c,v 1.57 2003/07/13 08:35:44 otto Exp $";
12#endif /* LIBC_SCCS and not lint */ 12#endif /* LIBC_SCCS and not lint */
13 13
14/* 14/*
@@ -387,6 +387,7 @@ map_pages(pages)
387#ifdef MALLOC_EXTRA_SANITY 387#ifdef MALLOC_EXTRA_SANITY
388 wrterror("(ES): overflow in map_pages fails\n"); 388 wrterror("(ES): overflow in map_pages fails\n");
389#endif /* MALLOC_EXTRA_SANITY */ 389#endif /* MALLOC_EXTRA_SANITY */
390 errno = ENOMEM;
390 return (NULL); 391 return (NULL);
391 } 392 }
392 tail = result + pages; 393 tail = result + pages;
@@ -838,8 +839,10 @@ imalloc(size)
838 if (suicide) 839 if (suicide)
839 abort(); 840 abort();
840 841
841 if ((size + malloc_pagesize) < size) /* Check for overflow */ 842 if ((size + malloc_pagesize) < size) { /* Check for overflow */
842 result = NULL; 843 result = NULL;
844 errno = ENOMEM;
845 }
843 else if (size <= malloc_maxsize) 846 else if (size <= malloc_maxsize)
844 result = malloc_bytes(size); 847 result = malloc_bytes(size);
845 else 848 else