summaryrefslogtreecommitdiff
path: root/usr.bin/diff/xmalloc.c
diff options
context:
space:
mode:
authorRay Lai <ray@cvs.openbsd.org>2009-06-07 08:39:14 +0000
committerRay Lai <ray@cvs.openbsd.org>2009-06-07 08:39:14 +0000
commit8896fb155a60da615a44f9b4f57e849d2d826fbb (patch)
tree9994931387b3cfb5f8e8de66ec0c5f2e63c4132b /usr.bin/diff/xmalloc.c
parentcf7eb25db5ce1f28444b090d61344d49803d57d3 (diff)
More cvs/diff/rcs convergence:
1. Mostly variable/function renaming, SIZE_T_MAX->SIZE_MAX, and spacing. 2. One strchr -> strncspn. 3. diff had a weird thing where it set file[12] = ofile[12] but never updated file or ofile, then if file and ofile were different it freed it. I removed it. OK millert
Diffstat (limited to 'usr.bin/diff/xmalloc.c')
-rw-r--r--usr.bin/diff/xmalloc.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/usr.bin/diff/xmalloc.c b/usr.bin/diff/xmalloc.c
index 125a6deea3b..b5340a9fa60 100644
--- a/usr.bin/diff/xmalloc.c
+++ b/usr.bin/diff/xmalloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.c,v 1.1 2007/05/29 18:24:56 ray Exp $ */
+/* $OpenBSD: xmalloc.c,v 1.2 2009/06/07 08:39:13 ray Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -36,6 +36,22 @@ xmalloc(size_t size)
}
void *
+xcalloc(size_t nmemb, size_t size)
+{
+ void *ptr;
+
+ if (size == 0 || nmemb == 0)
+ errx(1, "xcalloc: zero size");
+ if (SIZE_MAX / nmemb < size)
+ errx(1, "xcalloc: nmemb * size > SIZE_MAX");
+ ptr = calloc(nmemb, size);
+ if (ptr == NULL)
+ errx(1, "xcalloc: out of memory (allocating %lu bytes)",
+ (u_long)(size * nmemb));
+ return ptr;
+}
+
+void *
xrealloc(void *ptr, size_t nmemb, size_t size)
{
void *new_ptr;
@@ -43,7 +59,7 @@ xrealloc(void *ptr, size_t nmemb, size_t size)
if (new_size == 0)
errx(2, NULL);
- if (SIZE_T_MAX / nmemb < size)
+ if (SIZE_MAX / nmemb < size)
errx(2, NULL);
if (ptr == NULL)
new_ptr = malloc(new_size);