diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/libc/stdlib/malloc.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 2cd443191d..b48dcb3978 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: malloc.c,v 1.153 2014/04/14 10:29:41 otto Exp $ */ | 1 | /* $OpenBSD: malloc.c,v 1.154 2014/04/21 13:17:32 deraadt Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2008, 2010, 2011 Otto Moerbeek <otto@drijf.net> | 3 | * Copyright (c) 2008, 2010, 2011 Otto Moerbeek <otto@drijf.net> |
4 | * Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org> | 4 | * Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org> |
@@ -1432,6 +1432,17 @@ calloc(size_t nmemb, size_t size) | |||
1432 | return r; | 1432 | return r; |
1433 | } | 1433 | } |
1434 | 1434 | ||
1435 | void * | ||
1436 | mallocarray(size_t nmemb, size_t size) | ||
1437 | { | ||
1438 | if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && | ||
1439 | nmemb > 0 && SIZE_MAX / nmemb < size) { | ||
1440 | errno = ENOMEM; | ||
1441 | return NULL; | ||
1442 | } | ||
1443 | return malloc(size * nmemb); | ||
1444 | } | ||
1445 | |||
1435 | static void * | 1446 | static void * |
1436 | mapalign(struct dir_info *d, size_t alignment, size_t sz, int zero_fill) | 1447 | mapalign(struct dir_info *d, size_t alignment, size_t sz, int zero_fill) |
1437 | { | 1448 | { |