diff options
| author | 2017-04-12 18:24:37 +0000 | |
|---|---|---|
| committer | 2017-04-12 18:24:37 +0000 | |
| commit | 7b6df1e236be9d0d76ed74eabe303425a43c91fc (patch) | |
| tree | 2bddec2148c1b4d00c2d7cc3ff8980f71f750af8 /lib/libedit/chared.c | |
| parent | SipHash_Final() was assuming the digest was 64-bit aligned, resulting in (diff) | |
| download | wireguard-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.c | 34 |
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, |
