diff options
author | tholo <> | 1997-04-05 05:05:44 +0000 |
---|---|---|
committer | tholo <> | 1997-04-05 05:05:44 +0000 |
commit | 06967c8a88bc843a5afe2987c242b4f744a4dabf (patch) | |
tree | 1010a45dfb240c062924814a556f8bd5ddf17660 /src/lib | |
parent | 6f68cc9987a88fb66ff3bf328cb402bd676eb2cb (diff) | |
download | openbsd-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.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); |