diff options
-rw-r--r-- | pw.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -1048,13 +1048,14 @@ static void sigwinch(int sig) static char **resizebuf(char **buf, size_t nlfrom, size_t nlto) { - if (nlfrom > nlto) + if (nlfrom > nlto) { for (size_t i = nlto; i < nlfrom; i++) dsdrop(buf[i]); - if ((buf = realloc(buf, sizeof *buf * nlto)) == 0) - panic("out of memory"); - if (nlfrom < nlto) + } else if (nlfrom < nlto) { + if ((buf = realloc(buf, sizeof *buf * nlto)) == 0) + panic("out of memory"); memset(buf + nlfrom, 0, (nlto - nlfrom) * sizeof *buf); + } return buf; } |