diff options
author | YASUOKA Masahiko <yasuoka@cvs.openbsd.org> | 2019-08-07 04:22:17 +0000 |
---|---|---|
committer | YASUOKA Masahiko <yasuoka@cvs.openbsd.org> | 2019-08-07 04:22:17 +0000 |
commit | c38845a75042a4d4ef01a604fcb33250b825fedb (patch) | |
tree | b354e55a31336735de05dc0002aea0fae69f9ac1 | |
parent | aad45c0f10ec64419d3151b47b7af09a8315095d (diff) |
Initialize the line buffer by zero when allocation. This fixes the
problem a crash happens after the window size change.
Worked and discussed with asou and schwarze.
ok schwarze
-rw-r--r-- | lib/libedit/terminal.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/libedit/terminal.c b/lib/libedit/terminal.c index 638997b1083..a2feda87985 100644 --- a/lib/libedit/terminal.c +++ b/lib/libedit/terminal.c @@ -1,4 +1,4 @@ -/* $OpenBSD: terminal.c,v 1.18 2017/04/12 18:24:37 tb Exp $ */ +/* $OpenBSD: terminal.c,v 1.19 2019/08/07 04:22:16 yasuoka Exp $ */ /* $NetBSD: terminal.c,v 1.17 2016/02/15 15:35:03 christos Exp $ */ /*- @@ -413,11 +413,11 @@ terminal_alloc_display(EditLine *el) wchar_t **b; coord_t *c = &el->el_terminal.t_size; - b = reallocarray(NULL, c->v + 1, sizeof(*b)); + b = calloc(c->v + 1, sizeof(*b)); if (b == NULL) goto done; for (i = 0; i < c->v; i++) { - b[i] = reallocarray(NULL, c->h + 1, sizeof(**b)); + b[i] = calloc(c->h + 1, sizeof(**b)); if (b[i] == NULL) { while (--i >= 0) free(b[i]); @@ -428,11 +428,11 @@ terminal_alloc_display(EditLine *el) b[c->v] = NULL; el->el_display = b; - b = reallocarray(NULL, c->v + 1, sizeof(*b)); + b = calloc(c->v + 1, sizeof(*b)); if (b == NULL) goto done; for (i = 0; i < c->v; i++) { - b[i] = reallocarray(NULL, c->h + 1, sizeof(**b)); + b[i] = calloc(c->h + 1, sizeof(**b)); if (b[i] == NULL) { while (--i >= 0) free(b[i]); |