summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/xmalloc.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2014-10-08 17:35:58 +0000
committernicm <nicm@openbsd.org>2014-10-08 17:35:58 +0000
commit64cf113cfda174a3f12284d623b95b76b54db679 (patch)
treef03be81fb0b9ec2b0468ad2d40689ed61b83a2c5 /usr.bin/tmux/xmalloc.c
parentUse xrealloc(NULL, n, m) instead of xmalloc(n * m) to get overflow (diff)
downloadwireguard-openbsd-64cf113cfda174a3f12284d623b95b76b54db679.tar.xz
wireguard-openbsd-64cf113cfda174a3f12284d623b95b76b54db679.zip
Add xreallocarray and remove nmemb argument from xrealloc.
Diffstat (limited to 'usr.bin/tmux/xmalloc.c')
-rw-r--r--usr.bin/tmux/xmalloc.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/usr.bin/tmux/xmalloc.c b/usr.bin/tmux/xmalloc.c
index 6ef8afd47cd..c0e4167fbb9 100644
--- a/usr.bin/tmux/xmalloc.c
+++ b/usr.bin/tmux/xmalloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.c,v 1.4 2012/07/10 11:53:01 nicm Exp $ */
+/* $OpenBSD: xmalloc.c,v 1.5 2014/10/08 17:35:58 nicm Exp $ */
/*
* Copyright (c) 2004 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -68,7 +68,20 @@ xmalloc(size_t size)
}
void *
-xrealloc(void *oldptr, size_t nmemb, size_t size)
+xrealloc(void *oldptr, size_t newsize)
+{
+ void *newptr;
+
+ if (newsize == 0)
+ fatalx("zero size");
+ if ((newptr = realloc(oldptr, newsize)) == NULL)
+ fatal("xrealloc failed");
+
+ return (newptr);
+}
+
+void *
+xreallocarray(void *oldptr, size_t nmemb, size_t size)
{
size_t newsize = nmemb * size;
void *newptr;
@@ -78,7 +91,7 @@ xrealloc(void *oldptr, size_t nmemb, size_t size)
if (SIZE_MAX / nmemb < size)
fatalx("nmemb * size > SIZE_MAX");
if ((newptr = realloc(oldptr, newsize)) == NULL)
- fatal("xrealloc failed");
+ fatal("xreallocarray failed");
return (newptr);
}