From: sin Date: Tue, 21 Oct 2014 14:29:35 +0000 (+0100) Subject: Fix segfault in readln() X-Git-Tag: v1.0~92^2~199 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=cfd530b167a36a613fa9e8b55246a7b388c02005;p=nnn.git Fix segfault in readln() This could be reproduced simply by doing: [TAB] and backspacing a few times. --- diff --git a/noice.c b/noice.c index ee70d582..12c8ae90 100644 --- a/noice.c +++ b/noice.c @@ -287,8 +287,13 @@ readln(void) if (c == KEY_BACKSPACE) { getyx(stdscr, y, x); if (x >= x0) { - ln = realloc(ln, (i - 1) * sizeof(*ln)); - i--; + if (i > 0) { + ln = realloc(ln, (i - 1) * sizeof(*ln)); + i--; + } else { + free(ln); + ln = NULL; + } move(y, x); printw("%c", ' '); move(y, x);