summaryrefslogtreecommitdiffstats
path: root/lib/libedit/chared.c
diff options
context:
space:
mode:
authortb <tb@openbsd.org>2017-04-12 18:24:37 +0000
committertb <tb@openbsd.org>2017-04-12 18:24:37 +0000
commit7b6df1e236be9d0d76ed74eabe303425a43c91fc (patch)
tree2bddec2148c1b4d00c2d7cc3ff8980f71f750af8 /lib/libedit/chared.c
parentSipHash_Final() was assuming the digest was 64-bit aligned, resulting in (diff)
downloadwireguard-openbsd-7b6df1e236be9d0d76ed74eabe303425a43c91fc.tar.xz
wireguard-openbsd-7b6df1e236be9d0d76ed74eabe303425a43c91fc.zip
Use calloc(3) and recallocarray(3) instead of *alloc* + memset(0).
ok deraadt
Diffstat (limited to 'lib/libedit/chared.c')
-rw-r--r--lib/libedit/chared.c34
1 files changed, 9 insertions, 25 deletions
diff --git a/lib/libedit/chared.c b/lib/libedit/chared.c
index 18e3d0295f2..38327b4a1b4 100644
--- a/lib/libedit/chared.c
+++ b/lib/libedit/chared.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: chared.c,v 1.27 2016/05/22 23:09:56 schwarze Exp $ */
+/* $OpenBSD: chared.c,v 1.28 2017/04/12 18:24:37 tb Exp $ */
/* $NetBSD: chared.c,v 1.28 2009/12/30 22:37:40 christos Exp $ */
/*-
@@ -390,25 +390,20 @@ cv__endword(wchar_t *p, wchar_t *high, int n, int (*wtest)(wint_t))
protected int
ch_init(EditLine *el)
{
- el->el_line.buffer = reallocarray(NULL, EL_BUFSIZ,
- sizeof(*el->el_line.buffer));
+ el->el_line.buffer = calloc(EL_BUFSIZ, sizeof(*el->el_line.buffer));
if (el->el_line.buffer == NULL)
return -1;
-
- (void) memset(el->el_line.buffer, 0, EL_BUFSIZ *
- sizeof(*el->el_line.buffer));
el->el_line.cursor = el->el_line.buffer;
el->el_line.lastchar = el->el_line.buffer;
el->el_line.limit = &el->el_line.buffer[EL_BUFSIZ - EL_LEAVE];
- el->el_chared.c_undo.buf = reallocarray(NULL, EL_BUFSIZ,
+ el->el_chared.c_undo.buf = calloc(EL_BUFSIZ,
sizeof(*el->el_chared.c_undo.buf));
if (el->el_chared.c_undo.buf == NULL)
return -1;
- (void) memset(el->el_chared.c_undo.buf, 0, EL_BUFSIZ *
- sizeof(*el->el_chared.c_undo.buf));
el->el_chared.c_undo.len = -1;
el->el_chared.c_undo.cursor = 0;
+
el->el_chared.c_redo.buf = reallocarray(NULL, EL_BUFSIZ,
sizeof(*el->el_chared.c_redo.buf));
if (el->el_chared.c_redo.buf == NULL)
@@ -420,12 +415,10 @@ ch_init(EditLine *el)
el->el_chared.c_vcmd.action = NOP;
el->el_chared.c_vcmd.pos = el->el_line.buffer;
- el->el_chared.c_kill.buf = reallocarray(NULL, EL_BUFSIZ,
+ el->el_chared.c_kill.buf = calloc(EL_BUFSIZ,
sizeof(*el->el_chared.c_kill.buf));
if (el->el_chared.c_kill.buf == NULL)
return -1;
- (void) memset(el->el_chared.c_kill.buf, 0, EL_BUFSIZ *
- sizeof(*el->el_chared.c_kill.buf));
el->el_chared.c_kill.mark = el->el_line.buffer;
el->el_chared.c_kill.last = el->el_chared.c_kill.buf;
el->el_chared.c_resizefun = NULL;
@@ -494,14 +487,11 @@ ch_enlargebufs(EditLine *el, size_t addlen)
/*
* Reallocate line buffer.
*/
- newbuffer = reallocarray(el->el_line.buffer, newsz,
+ newbuffer = recallocarray(el->el_line.buffer, sz, newsz,
sizeof(*newbuffer));
if (!newbuffer)
return 0;
- /* zero the newly added memory, leave old data in */
- (void) memset(&newbuffer[sz], 0, (newsz - sz) * sizeof(*newbuffer));
-
oldbuf = el->el_line.buffer;
el->el_line.buffer = newbuffer;
@@ -513,14 +503,11 @@ ch_enlargebufs(EditLine *el, size_t addlen)
/*
* Reallocate kill buffer.
*/
- newbuffer = reallocarray(el->el_chared.c_kill.buf, newsz,
+ newbuffer = recallocarray(el->el_chared.c_kill.buf, sz, newsz,
sizeof(*newbuffer));
if (!newbuffer)
return 0;
- /* zero the newly added memory, leave old data in */
- (void) memset(&newbuffer[sz], 0, (newsz - sz) * sizeof(*newbuffer));
-
oldkbuf = el->el_chared.c_kill.buf;
el->el_chared.c_kill.buf = newbuffer;
@@ -532,13 +519,10 @@ ch_enlargebufs(EditLine *el, size_t addlen)
/*
* Reallocate undo buffer.
*/
- newbuffer = reallocarray(el->el_chared.c_undo.buf,
- newsz, sizeof(*newbuffer));
+ newbuffer = recallocarray(el->el_chared.c_undo.buf, sz, newsz,
+ sizeof(*newbuffer));
if (!newbuffer)
return 0;
-
- /* zero the newly added memory, leave old data in */
- (void) memset(&newbuffer[sz], 0, (newsz - sz) * sizeof(*newbuffer));
el->el_chared.c_undo.buf = newbuffer;
newbuffer = reallocarray(el->el_chared.c_redo.buf,