diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libc/stdlib/malloc.c | 6 |
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) |
11 | static char rcsid[] = "$OpenBSD: malloc.c,v 1.22 1997/02/11 17:46:36 niklas Exp $"; | 11 | static 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); |