diff options
author | Damien Miller <djm@mindrot.org> | 2006-03-31 14:09:17 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2006-03-31 14:09:17 +0200 |
commit | da380becc6d9cc00c7e4c892354d93cd1fc12431 (patch) | |
tree | 65b10e3896d929858af13d6af350104f709c90d1 /xmalloc.c | |
parent | - deraadt@cvs.openbsd.org 2006/03/26 01:31:48 (diff) | |
download | openssh-da380becc6d9cc00c7e4c892354d93cd1fc12431.tar.xz openssh-da380becc6d9cc00c7e4c892354d93cd1fc12431.zip |
- OpenBSD CVS Sync
- deraadt@cvs.openbsd.org 2006/03/27 01:21:18
[xmalloc.c]
we can do the size & nmemb check before the integer overflow check;
evol
Diffstat (limited to '')
-rw-r--r-- | xmalloc.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.c,v 1.20 2006/03/25 13:17:03 djm Exp $ */ +/* $OpenBSD: xmalloc.c,v 1.21 2006/03/27 01:21:18 deraadt Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland @@ -36,10 +36,10 @@ xcalloc(size_t nmemb, size_t size) { void *ptr; - if (nmemb && size && SIZE_T_MAX / nmemb < size) - fatal("xcalloc: nmemb * size > SIZE_T_MAX"); if (size == 0 || nmemb == 0) fatal("xcalloc: zero size"); + if (SIZE_T_MAX / nmemb < size) + fatal("xcalloc: nmemb * size > SIZE_T_MAX"); ptr = calloc(nmemb, size); if (ptr == NULL) fatal("xcalloc: out of memory (allocating %lu bytes)", @@ -53,10 +53,10 @@ xrealloc(void *ptr, size_t nmemb, size_t size) void *new_ptr; size_t new_size = nmemb * size; - if (nmemb && size && SIZE_T_MAX / nmemb < size) - fatal("xrealloc: nmemb * size > SIZE_T_MAX"); if (new_size == 0) fatal("xrealloc: zero size"); + if (SIZE_T_MAX / nmemb < size) + fatal("xrealloc: nmemb * size > SIZE_T_MAX"); if (ptr == NULL) new_ptr = malloc(new_size); else |