summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2014-12-01 21:58:46 +0000
committerderaadt <deraadt@openbsd.org>2014-12-01 21:58:46 +0000
commitcaa2ffb0b03850db17af0f8c10b96ed868191c3f (patch)
treee4a3ca634b548c220db17e0f4f17351d7a2dd572
parentreconvert (rereconvert?) to memcpy except in the one case where memmove (diff)
downloadwireguard-openbsd-caa2ffb0b03850db17af0f8c10b96ed868191c3f.tar.xz
wireguard-openbsd-caa2ffb0b03850db17af0f8c10b96ed868191c3f.zip
An internal function called xrealloc() is actually a fail-hard
reallocarray()... so rename it.
-rw-r--r--usr.bin/cvs/buf.c4
-rw-r--r--usr.bin/cvs/cvs.c6
-rw-r--r--usr.bin/cvs/diff3.c12
-rw-r--r--usr.bin/cvs/diff_internals.c18
-rw-r--r--usr.bin/cvs/getlog.c4
-rw-r--r--usr.bin/cvs/rcsparse.c4
-rw-r--r--usr.bin/cvs/server.c6
-rw-r--r--usr.bin/cvs/util.c4
-rw-r--r--usr.bin/cvs/xmalloc.c9
-rw-r--r--usr.bin/cvs/xmalloc.h4
-rw-r--r--usr.bin/rcs/buf.c4
-rw-r--r--usr.bin/rcs/diff.c18
-rw-r--r--usr.bin/rcs/diff3.c12
-rw-r--r--usr.bin/rcs/rcsdiff.c4
-rw-r--r--usr.bin/rcs/rcsnum.c8
-rw-r--r--usr.bin/rcs/rcsparse.c4
-rw-r--r--usr.bin/rcs/rcsprog.c6
-rw-r--r--usr.bin/rcs/rcsutil.c4
-rw-r--r--usr.bin/rcs/xmalloc.c16
-rw-r--r--usr.bin/rcs/xmalloc.h4
20 files changed, 70 insertions, 81 deletions
diff --git a/usr.bin/cvs/buf.c b/usr.bin/cvs/buf.c
index a21676c9848..e539b5c7369 100644
--- a/usr.bin/cvs/buf.c
+++ b/usr.bin/cvs/buf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: buf.c,v 1.80 2010/09/08 20:49:11 nicm Exp $ */
+/* $OpenBSD: buf.c,v 1.81 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2003 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -286,6 +286,6 @@ buf_differ(const BUF *b1, const BUF *b2)
static void
buf_grow(BUF *b, size_t len)
{
- b->cb_buf = xrealloc(b->cb_buf, 1, b->cb_size + len);
+ b->cb_buf = xreallocarray(b->cb_buf, 1, b->cb_size + len);
b->cb_size += len;
}
diff --git a/usr.bin/cvs/cvs.c b/usr.bin/cvs/cvs.c
index e7cbda5f444..15210e015f3 100644
--- a/usr.bin/cvs/cvs.c
+++ b/usr.bin/cvs/cvs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cvs.c,v 1.153 2014/01/08 13:23:55 okan Exp $ */
+/* $OpenBSD: cvs.c,v 1.154 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2006, 2007 Joris Vink <joris@openbsd.org>
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
@@ -156,7 +156,7 @@ cvs_build_cmd(char ***cmd_argv, char **argv, int argc)
if (cmd_argc == cur) {
cur += 8;
- *cmd_argv = xrealloc(*cmd_argv, cur,
+ *cmd_argv = xreallocarray(*cmd_argv, cur,
sizeof(char *));
}
@@ -165,7 +165,7 @@ cvs_build_cmd(char ***cmd_argv, char **argv, int argc)
if (cmd_argc + argc > cur) {
cur = cmd_argc + argc + 1;
- *cmd_argv = xrealloc(*cmd_argv, cur,
+ *cmd_argv = xreallocarray(*cmd_argv, cur,
sizeof(char *));
}
diff --git a/usr.bin/cvs/diff3.c b/usr.bin/cvs/diff3.c
index df5eae89d8b..5f0d95e31ab 100644
--- a/usr.bin/cvs/diff3.c
+++ b/usr.bin/cvs/diff3.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff3.c,v 1.55 2012/03/04 04:05:15 fgsch Exp $ */
+/* $OpenBSD: diff3.c,v 1.56 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (C) Caldera International Inc. 2001-2002.
@@ -528,7 +528,7 @@ get_line(FILE *b, size_t *n)
do {
bufsize += 1024;
} while (len + 1 > bufsize);
- buf = xrealloc(buf, 1, bufsize);
+ buf = xreallocarray(buf, 1, bufsize);
}
memcpy(buf, cp, len - 1);
buf[len - 1] = '\n';
@@ -825,13 +825,13 @@ increase(void)
newsz = szchanges == 0 ? 64 : 2 * szchanges;
incr = newsz - szchanges;
- d13 = xrealloc(d13, newsz, sizeof(*d13));
+ d13 = xreallocarray(d13, newsz, sizeof(*d13));
memset(d13 + szchanges, 0, incr * sizeof(*d13));
- d23 = xrealloc(d23, newsz, sizeof(*d23));
+ d23 = xreallocarray(d23, newsz, sizeof(*d23));
memset(d23 + szchanges, 0, incr * sizeof(*d23));
- de = xrealloc(de, newsz, sizeof(*de));
+ de = xreallocarray(de, newsz, sizeof(*de));
memset(de + szchanges, 0, incr * sizeof(*de));
- overlap = xrealloc(overlap, newsz, sizeof(*overlap));
+ overlap = xreallocarray(overlap, newsz, sizeof(*overlap));
memset(overlap + szchanges, 0, incr * sizeof(*overlap));
szchanges = newsz;
}
diff --git a/usr.bin/cvs/diff_internals.c b/usr.bin/cvs/diff_internals.c
index b451422dd07..706415acbb5 100644
--- a/usr.bin/cvs/diff_internals.c
+++ b/usr.bin/cvs/diff_internals.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff_internals.c,v 1.34 2011/04/01 17:25:26 nicm Exp $ */
+/* $OpenBSD: diff_internals.c,v 1.35 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (C) Caldera International Inc. 2001-2002.
* All rights reserved.
@@ -377,11 +377,11 @@ diffreg(const char *file1, const char *file2, int _fd1, int _fd2,
member = (int *)file[1];
equiv(sfile[0], slen[0], sfile[1], slen[1], member);
- member = xrealloc(member, slen[1] + 2, sizeof(*member));
+ member = xreallocarray(member, slen[1] + 2, sizeof(*member));
class = (int *)file[0];
unsort(sfile[0], slen[0], class);
- class = xrealloc(class, slen[0] + 2, sizeof(*class));
+ class = xreallocarray(class, slen[0] + 2, sizeof(*class));
klist = xcalloc(slen[0] + 2, sizeof(*klist));
clen = 0;
@@ -391,13 +391,13 @@ diffreg(const char *file1, const char *file2, int _fd1, int _fd2,
xfree(member);
xfree(class);
- J = xrealloc(J, len[0] + 2, sizeof(*J));
+ J = xreallocarray(J, len[0] + 2, sizeof(*J));
unravel(klist[i]);
xfree(clist);
xfree(klist);
- ixold = xrealloc(ixold, len[0] + 2, sizeof(*ixold));
- ixnew = xrealloc(ixnew, len[1] + 2, sizeof(*ixnew));
+ ixold = xreallocarray(ixold, len[0] + 2, sizeof(*ixold));
+ ixnew = xreallocarray(ixnew, len[1] + 2, sizeof(*ixnew));
check(f1, f2, flags);
output(f1, f2, flags);
@@ -458,7 +458,7 @@ prepare(int i, FILE *fd, off_t filesize, int flags)
for (j = 0; (h = readhash(fd, flags));) {
if (j == sz) {
sz = sz * 3 / 2;
- p = xrealloc(p, sz + 3, sizeof(*p));
+ p = xreallocarray(p, sz + 3, sizeof(*p));
}
p[++j].value = h;
}
@@ -589,7 +589,7 @@ newcand(int x, int y, int pred)
if (clen == clistlen) {
clistlen = clistlen * 11 / 10;
- clist = xrealloc(clist, clistlen, sizeof(*clist));
+ clist = xreallocarray(clist, clistlen, sizeof(*clist));
}
q = clist + clen;
q->x = x;
@@ -999,7 +999,7 @@ proceed:
if (context_vec_ptr == context_vec_end - 1) {
ptrdiff_t offset = context_vec_ptr - context_vec_start;
max_context <<= 1;
- context_vec_start = xrealloc(context_vec_start,
+ context_vec_start = xreallocarray(context_vec_start,
max_context, sizeof(*context_vec_start));
context_vec_end = context_vec_start + max_context;
context_vec_ptr = context_vec_start + offset;
diff --git a/usr.bin/cvs/getlog.c b/usr.bin/cvs/getlog.c
index 4911c1bf6af..461cd32c5bd 100644
--- a/usr.bin/cvs/getlog.c
+++ b/usr.bin/cvs/getlog.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: getlog.c,v 1.97 2014/01/08 13:23:55 okan Exp $ */
+/* $OpenBSD: getlog.c,v 1.98 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2005, 2006 Xavier Santolaria <xsa@openbsd.org>
* Copyright (c) 2006 Joris Vink <joris@openbsd.org>
@@ -413,7 +413,7 @@ push_date(char *dest, const char *src)
len = strlen(dest) + strlen(src) + 2;
dest[strlen(dest)] = ';';
- dest = xrealloc(dest, len, 1);
+ dest = xreallocarray(dest, len, 1);
strlcat(dest, src, len);
return (dest);
}
diff --git a/usr.bin/cvs/rcsparse.c b/usr.bin/cvs/rcsparse.c
index b840845f29c..23f4d67a0ea 100644
--- a/usr.bin/cvs/rcsparse.c
+++ b/usr.bin/cvs/rcsparse.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsparse.c,v 1.10 2014/11/22 18:01:09 deraadt Exp $ */
+/* $OpenBSD: rcsparse.c,v 1.11 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2010 Tobias Stoeckmann <tobias@openbsd.org>
*
@@ -1202,7 +1202,7 @@ rcsparse_growbuf(RCSFILE *rfp)
{
struct rcs_pdata *pdp = (struct rcs_pdata *)rfp->rf_pdata;
- pdp->rp_buf = xrealloc(pdp->rp_buf, 1,
+ pdp->rp_buf = xreallocarray(pdp->rp_buf, 1,
pdp->rp_blen + RCS_BUFEXTSIZE);
pdp->rp_blen += RCS_BUFEXTSIZE;
pdp->rp_bufend = pdp->rp_buf + pdp->rp_blen - 1;
diff --git a/usr.bin/cvs/server.c b/usr.bin/cvs/server.c
index 2ae21a980be..c733ab49a9b 100644
--- a/usr.bin/cvs/server.c
+++ b/usr.bin/cvs/server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server.c,v 1.100 2010/07/23 21:46:05 ray Exp $ */
+/* $OpenBSD: server.c,v 1.101 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2006 Joris Vink <joris@openbsd.org>
*
@@ -489,7 +489,7 @@ cvs_server_argument(char *data)
if (data == NULL)
fatal("Missing argument for Argument");
- server_argv = xrealloc(server_argv, server_argc + 2,
+ server_argv = xreallocarray(server_argv, server_argc + 2,
sizeof(*server_argv));
server_argv[server_argc] = xstrdup(data);
server_argv[++server_argc] = NULL;
@@ -507,7 +507,7 @@ cvs_server_argumentx(char *data)
idx = server_argc - 1;
len = strlen(server_argv[idx]) + strlen(data) + 2;
- server_argv[idx] = xrealloc(server_argv[idx], len, sizeof(char));
+ server_argv[idx] = xreallocarray(server_argv[idx], len, sizeof(char));
strlcat(server_argv[idx], "\n", len);
strlcat(server_argv[idx], data, len);
}
diff --git a/usr.bin/cvs/util.c b/usr.bin/cvs/util.c
index 5ca9bb8f73c..3d6b0948aab 100644
--- a/usr.bin/cvs/util.c
+++ b/usr.bin/cvs/util.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: util.c,v 1.155 2011/04/20 18:43:57 nicm Exp $ */
+/* $OpenBSD: util.c,v 1.156 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* Copyright (c) 2005, 2006 Joris Vink <joris@openbsd.org>
@@ -768,7 +768,7 @@ cvs_strsplit(char *str, const char *sep)
while ((p = strsep(&cp, sep)) != NULL) {
av->argv[i++] = p;
- av->argv = xrealloc(av->argv,
+ av->argv = xreallocarray(av->argv,
i + 1, sizeof(*(av->argv)));
}
av->argv[i] = NULL;
diff --git a/usr.bin/cvs/xmalloc.c b/usr.bin/cvs/xmalloc.c
index 009ccc063a9..806cd3e1476 100644
--- a/usr.bin/cvs/xmalloc.c
+++ b/usr.bin/cvs/xmalloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.c,v 1.9 2009/06/07 08:39:13 ray Exp $ */
+/* $OpenBSD: xmalloc.c,v 1.10 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -51,7 +51,7 @@ xcalloc(size_t nmemb, size_t size)
}
void *
-xrealloc(void *ptr, size_t nmemb, size_t size)
+xreallocarray(void *ptr, size_t nmemb, size_t size)
{
void *new_ptr;
size_t new_size = nmemb * size;
@@ -60,10 +60,7 @@ xrealloc(void *ptr, size_t nmemb, size_t size)
fatal("xrealloc: zero size");
if (SIZE_MAX / nmemb < size)
fatal("xrealloc: nmemb * size > SIZE_MAX");
- if (ptr == NULL)
- new_ptr = malloc(new_size);
- else
- new_ptr = realloc(ptr, new_size);
+ new_ptr = realloc(ptr, new_size);
if (new_ptr == NULL)
fatal("xrealloc: out of memory (new_size %lu bytes)",
(u_long) new_size);
diff --git a/usr.bin/cvs/xmalloc.h b/usr.bin/cvs/xmalloc.h
index 54b39dce9bd..e6c9950ea64 100644
--- a/usr.bin/cvs/xmalloc.h
+++ b/usr.bin/cvs/xmalloc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.h,v 1.3 2007/01/29 16:22:29 xsa Exp $ */
+/* $OpenBSD: xmalloc.h,v 1.4 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -21,7 +21,7 @@
void *xmalloc(size_t);
void *xcalloc(size_t, size_t);
-void *xrealloc(void *, size_t, size_t);
+void *xreallocarray(void *, size_t, size_t);
void xfree(void *);
char *xstrdup(const char *);
int xasprintf(char **, const char *, ...)
diff --git a/usr.bin/rcs/buf.c b/usr.bin/rcs/buf.c
index 22575358a9a..1eefbd1da11 100644
--- a/usr.bin/rcs/buf.c
+++ b/usr.bin/rcs/buf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: buf.c,v 1.22 2011/07/06 15:36:52 nicm Exp $ */
+/* $OpenBSD: buf.c,v 1.23 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2003 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -325,6 +325,6 @@ buf_write_stmp(BUF *b, char *template)
static void
buf_grow(BUF *b, size_t len)
{
- b->cb_buf = xrealloc(b->cb_buf, 1, b->cb_size + len);
+ b->cb_buf = xreallocarray(b->cb_buf, 1, b->cb_size + len);
b->cb_size += len;
}
diff --git a/usr.bin/rcs/diff.c b/usr.bin/rcs/diff.c
index ecc29c7799c..b19dcd1224c 100644
--- a/usr.bin/rcs/diff.c
+++ b/usr.bin/rcs/diff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff.c,v 1.35 2014/10/10 08:15:25 otto Exp $ */
+/* $OpenBSD: diff.c,v 1.36 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (C) Caldera International Inc. 2001-2002.
* All rights reserved.
@@ -359,11 +359,11 @@ diffreg(const char *file1, const char *file2, BUF *out, int flags)
member = (int *)file[1];
equiv(sfile[0], slen[0], sfile[1], slen[1], member);
- member = xrealloc(member, slen[1] + 2, sizeof(*member));
+ member = xreallocarray(member, slen[1] + 2, sizeof(*member));
class = (int *)file[0];
unsort(sfile[0], slen[0], class);
- class = xrealloc(class, slen[0] + 2, sizeof(*class));
+ class = xreallocarray(class, slen[0] + 2, sizeof(*class));
klist = xcalloc(slen[0] + 2, sizeof(*klist));
clen = 0;
@@ -373,13 +373,13 @@ diffreg(const char *file1, const char *file2, BUF *out, int flags)
xfree(member);
xfree(class);
- J = xrealloc(J, len[0] + 2, sizeof(*J));
+ J = xreallocarray(J, len[0] + 2, sizeof(*J));
unravel(klist[i]);
xfree(clist);
xfree(klist);
- ixold = xrealloc(ixold, len[0] + 2, sizeof(*ixold));
- ixnew = xrealloc(ixnew, len[1] + 2, sizeof(*ixnew));
+ ixold = xreallocarray(ixold, len[0] + 2, sizeof(*ixold));
+ ixnew = xreallocarray(ixnew, len[1] + 2, sizeof(*ixnew));
check(f1, f2, flags);
output(f1, f2, flags);
@@ -440,7 +440,7 @@ prepare(int i, FILE *fd, off_t filesize, int flags)
for (j = 0; (h = readhash(fd, flags));) {
if (j == sz) {
sz = sz * 3 / 2;
- p = xrealloc(p, sz + 3, sizeof(*p));
+ p = xreallocarray(p, sz + 3, sizeof(*p));
}
p[++j].value = h;
}
@@ -571,7 +571,7 @@ newcand(int x, int y, int pred)
if (clen == clistlen) {
clistlen = clistlen * 11 / 10;
- clist = xrealloc(clist, clistlen, sizeof(*clist));
+ clist = xreallocarray(clist, clistlen, sizeof(*clist));
}
q = clist + clen;
q->x = x;
@@ -910,7 +910,7 @@ proceed:
if (context_vec_ptr == context_vec_end - 1) {
ptrdiff_t offset = context_vec_ptr - context_vec_start;
max_context <<= 1;
- context_vec_start = xrealloc(context_vec_start,
+ context_vec_start = xreallocarray(context_vec_start,
max_context, sizeof(*context_vec_start));
context_vec_end = context_vec_start + max_context;
context_vec_ptr = context_vec_start + offset;
diff --git a/usr.bin/rcs/diff3.c b/usr.bin/rcs/diff3.c
index d234ba7db81..9ceae97d302 100644
--- a/usr.bin/rcs/diff3.c
+++ b/usr.bin/rcs/diff3.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff3.c,v 1.33 2012/03/04 04:05:15 fgsch Exp $ */
+/* $OpenBSD: diff3.c,v 1.34 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (C) Caldera International Inc. 2001-2002.
@@ -637,7 +637,7 @@ get_line(FILE *b, size_t *n)
do {
bufsize += 1024;
} while (len + 1 > bufsize);
- buf = xrealloc(buf, 1, bufsize);
+ buf = xreallocarray(buf, 1, bufsize);
}
memcpy(buf, cp, len - 1);
buf[len - 1] = '\n';
@@ -934,13 +934,13 @@ increase(void)
newsz = szchanges == 0 ? 64 : 2 * szchanges;
incr = newsz - szchanges;
- d13 = xrealloc(d13, newsz, sizeof(*d13));
+ d13 = xreallocarray(d13, newsz, sizeof(*d13));
memset(d13 + szchanges, 0, incr * sizeof(*d13));
- d23 = xrealloc(d23, newsz, sizeof(*d23));
+ d23 = xreallocarray(d23, newsz, sizeof(*d23));
memset(d23 + szchanges, 0, incr * sizeof(*d23));
- de = xrealloc(de, newsz, sizeof(*de));
+ de = xreallocarray(de, newsz, sizeof(*de));
memset(de + szchanges, 0, incr * sizeof(*de));
- overlap = xrealloc(overlap, newsz, sizeof(*overlap));
+ overlap = xreallocarray(overlap, newsz, sizeof(*overlap));
memset(overlap + szchanges, 0, incr * sizeof(*overlap));
szchanges = newsz;
}
diff --git a/usr.bin/rcs/rcsdiff.c b/usr.bin/rcs/rcsdiff.c
index 0938eec2143..f508dba3ecf 100644
--- a/usr.bin/rcs/rcsdiff.c
+++ b/usr.bin/rcs/rcsdiff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsdiff.c,v 1.80 2014/10/02 06:23:15 otto Exp $ */
+/* $OpenBSD: rcsdiff.c,v 1.81 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2005 Joris Vink <joris@openbsd.org>
* All rights reserved.
@@ -457,7 +457,7 @@ push_ignore_pats(char *pattern)
} else {
/* old + "|" + new + NUL */
len = strlen(diff_ignore_pats) + strlen(pattern) + 2;
- diff_ignore_pats = xrealloc(diff_ignore_pats, len, 1);
+ diff_ignore_pats = xreallocarray(diff_ignore_pats, len, 1);
strlcat(diff_ignore_pats, "|", len);
strlcat(diff_ignore_pats, pattern, len);
}
diff --git a/usr.bin/rcs/rcsnum.c b/usr.bin/rcs/rcsnum.c
index 428fa76b350..907683453cb 100644
--- a/usr.bin/rcs/rcsnum.c
+++ b/usr.bin/rcs/rcsnum.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsnum.c,v 1.14 2014/01/07 14:08:16 deraadt Exp $ */
+/* $OpenBSD: rcsnum.c,v 1.15 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -257,7 +257,7 @@ rcsnum_aton(const char *str, char **ep, RCSNUM *nump)
}
nump->rn_len++;
- nump->rn_id = xrealloc(nump->rn_id,
+ nump->rn_id = xreallocarray(nump->rn_id,
nump->rn_len + 1, sizeof(*(nump->rn_id)));
nump->rn_id[nump->rn_len] = 0;
continue;
@@ -320,7 +320,7 @@ rcsnum_aton(const char *str, char **ep, RCSNUM *nump)
/* We can't have a single-digit rcs number. */
if (nump->rn_len == 0) {
nump->rn_len++;
- nump->rn_id = xrealloc(nump->rn_id,
+ nump->rn_id = xreallocarray(nump->rn_id,
nump->rn_len + 1, sizeof(*(nump->rn_id)));
nump->rn_id[nump->rn_len] = 0;
}
@@ -400,6 +400,6 @@ rcsnum_brtorev(const RCSNUM *brnum)
static void
rcsnum_setsize(RCSNUM *num, u_int len)
{
- num->rn_id = xrealloc(num->rn_id, len, sizeof(*(num->rn_id)));
+ num->rn_id = xreallocarray(num->rn_id, len, sizeof(*(num->rn_id)));
num->rn_len = len;
}
diff --git a/usr.bin/rcs/rcsparse.c b/usr.bin/rcs/rcsparse.c
index e699e6c9703..2328482d29f 100644
--- a/usr.bin/rcs/rcsparse.c
+++ b/usr.bin/rcs/rcsparse.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsparse.c,v 1.13 2014/11/22 18:01:09 deraadt Exp $ */
+/* $OpenBSD: rcsparse.c,v 1.14 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2010 Tobias Stoeckmann <tobias@openbsd.org>
*
@@ -1199,7 +1199,7 @@ rcsparse_growbuf(RCSFILE *rfp)
{
struct rcs_pdata *pdp = (struct rcs_pdata *)rfp->rf_pdata;
- pdp->rp_buf = xrealloc(pdp->rp_buf, 1,
+ pdp->rp_buf = xreallocarray(pdp->rp_buf, 1,
pdp->rp_blen + RCS_BUFEXTSIZE);
pdp->rp_blen += RCS_BUFEXTSIZE;
pdp->rp_bufend = pdp->rp_buf + pdp->rp_blen - 1;
diff --git a/usr.bin/rcs/rcsprog.c b/usr.bin/rcs/rcsprog.c
index f8af1060429..c4b4729f8b3 100644
--- a/usr.bin/rcs/rcsprog.c
+++ b/usr.bin/rcs/rcsprog.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsprog.c,v 1.153 2014/10/10 08:03:39 otto Exp $ */
+/* $OpenBSD: rcsprog.c,v 1.154 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2005 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -100,7 +100,7 @@ build_cmd(char ***cmd_argv, char **argv, int argc)
if (cmd_argc == cur) {
cur += 8;
- *cmd_argv = xrealloc(*cmd_argv, cur,
+ *cmd_argv = xreallocarray(*cmd_argv, cur,
sizeof(char *));
}
@@ -109,7 +109,7 @@ build_cmd(char ***cmd_argv, char **argv, int argc)
if (cmd_argc + argc > cur) {
cur = cmd_argc + argc + 1;
- *cmd_argv = xrealloc(*cmd_argv, cur,
+ *cmd_argv = xreallocarray(*cmd_argv, cur,
sizeof(char *));
}
diff --git a/usr.bin/rcs/rcsutil.c b/usr.bin/rcs/rcsutil.c
index 5e7d936d448..f27cf467e3e 100644
--- a/usr.bin/rcs/rcsutil.c
+++ b/usr.bin/rcs/rcsutil.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsutil.c,v 1.41 2014/10/10 08:15:25 otto Exp $ */
+/* $OpenBSD: rcsutil.c,v 1.42 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Copyright (c) 2005, 2006 Joris Vink <joris@openbsd.org>
* Copyright (c) 2006 Xavier Santolaria <xsa@openbsd.org>
@@ -592,7 +592,7 @@ rcs_strsplit(const char *str, const char *sep)
while ((p = strsep(&cp, sep)) != NULL) {
av->argv[i++] = p;
- av->argv = xrealloc(av->argv,
+ av->argv = xreallocarray(av->argv,
i + 1, sizeof(*(av->argv)));
}
av->argv[i] = NULL;
diff --git a/usr.bin/rcs/xmalloc.c b/usr.bin/rcs/xmalloc.c
index 246013e576e..767ce14e2bb 100644
--- a/usr.bin/rcs/xmalloc.c
+++ b/usr.bin/rcs/xmalloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.c,v 1.5 2014/09/27 15:16:36 otto Exp $ */
+/* $OpenBSD: xmalloc.c,v 1.6 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -54,22 +54,14 @@ xcalloc(size_t nmemb, size_t size)
}
void *
-xrealloc(void *ptr, size_t nmemb, size_t size)
+xreallocarray(void *ptr, size_t nmemb, size_t size)
{
void *new_ptr;
- size_t new_size = nmemb * size;
- if (new_size == 0)
- errx(1, "xrealloc: zero size");
- if (SIZE_MAX / nmemb < size)
- errx(1, "xrealloc: nmemb * size > SIZE_MAX");
- if (ptr == NULL)
- new_ptr = malloc(new_size);
- else
- new_ptr = realloc(ptr, new_size);
+ new_ptr = reallocarray(ptr, nmemb, size);
if (new_ptr == NULL)
errx(1, "xrealloc: out of memory (new_size %zu bytes)",
- new_size);
+ nmemb * size);
return new_ptr;
}
diff --git a/usr.bin/rcs/xmalloc.h b/usr.bin/rcs/xmalloc.h
index 51dfb5564cd..561e6924b74 100644
--- a/usr.bin/rcs/xmalloc.h
+++ b/usr.bin/rcs/xmalloc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.h,v 1.1 2006/04/26 02:55:13 joris Exp $ */
+/* $OpenBSD: xmalloc.h,v 1.2 2014/12/01 21:58:46 deraadt Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -21,7 +21,7 @@
void *xmalloc(size_t);
void *xcalloc(size_t, size_t);
-void *xrealloc(void *, size_t, size_t);
+void *xreallocarray(void *, size_t, size_t);
void xfree(void *);
char *xstrdup(const char *);
int xasprintf(char **, const char *, ...)