aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pw.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/pw.c b/pw.c
index acac723..6c36a90 100644
--- a/pw.c
+++ b/pw.c
@@ -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;
}