summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortholo <>1997-04-05 05:05:44 +0000
committertholo <>1997-04-05 05:05:44 +0000
commit06967c8a88bc843a5afe2987c242b4f744a4dabf (patch)
tree1010a45dfb240c062924814a556f8bd5ddf17660 /src/lib
parent6f68cc9987a88fb66ff3bf328cb402bd676eb2cb (diff)
downloadopenbsd-06967c8a88bc843a5afe2987c242b4f744a4dabf.tar.gz
openbsd-06967c8a88bc843a5afe2987c242b4f744a4dabf.tar.bz2
openbsd-06967c8a88bc843a5afe2987c242b4f744a4dabf.zip
Check for overflow; from FreeBSD
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libc/stdlib/malloc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c
index da2c17b83d..fc82a4f419 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.22 1997/02/11 17:46:36 niklas Exp $"; 11static char rcsid[] = "$OpenBSD: malloc.c,v 1.23 1997/04/05 05:05:44 tholo Exp $";
12#endif /* LIBC_SCCS and not lint */ 12#endif /* LIBC_SCCS and not lint */
13 13
14/* 14/*
@@ -756,7 +756,9 @@ imalloc(size)
756 if (suicide) 756 if (suicide)
757 abort(); 757 abort();
758 758
759 if (size <= malloc_maxsize) 759 if ((size + malloc_pagesize) < size) /* Check for overflow */
760 result = 0;
761 else if (size <= malloc_maxsize)
760 result = malloc_bytes(size); 762 result = malloc_bytes(size);
761 else 763 else
762 result = malloc_pages(size); 764 result = malloc_pages(size);