From 6a0984b4ee586061a98529757ee74649d63d8217 Mon Sep 17 00:00:00 2001 From: djm Date: Fri, 31 Mar 2006 12:09:17 +0000 Subject: [PATCH] - 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 --- ChangeLog | 7 +++++++ xmalloc.c | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3dfa4555..ef6dd49e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +20060331 + - 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 + 20060326 - OpenBSD CVS Sync - jakob@cvs.openbsd.org 2006/03/15 08:46:44 diff --git a/xmalloc.c b/xmalloc.c index 9bfa9e6f..110d8cb7 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -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 * Copyright (c) 1995 Tatu Ylonen , 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 -- 2.45.1