Check for overflow; from FreeBSD
authortholo <tholo@openbsd.org>
Sat, 5 Apr 1997 05:05:44 +0000 (05:05 +0000)
committertholo <tholo@openbsd.org>
Sat, 5 Apr 1997 05:05:44 +0000 (05:05 +0000)
lib/libc/stdlib/malloc.c

index da2c17b..fc82a4f 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$OpenBSD: malloc.c,v 1.22 1997/02/11 17:46:36 niklas Exp $";
+static char rcsid[] = "$OpenBSD: malloc.c,v 1.23 1997/04/05 05:05:44 tholo Exp $";
 #endif /* LIBC_SCCS and not lint */
 
 /*
@@ -756,7 +756,9 @@ imalloc(size)
     if (suicide)
        abort();
 
-    if (size <= malloc_maxsize)
+    if ((size + malloc_pagesize) < size)       /* Check for overflow */
+       result = 0;
+    else if (size <= malloc_maxsize)
        result =  malloc_bytes(size);
     else
        result =  malloc_pages(size);