aboutsummaryrefslogtreecommitdiffstats
path: root/pw.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-05-01 01:00:38 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-05-01 01:00:38 -0700
commit0a0b9e9122b5d5702968e224d0f3d830fb3c914d (patch)
treea1dd662afc32b7dd6791da65d32e9678be5d667f /pw.c
parent428eb782eb401736d26adaa28c26bc1d6f78437e (diff)
downloadpw-0a0b9e9122b5d5702968e224d0f3d830fb3c914d.tar.gz
pw-0a0b9e9122b5d5702968e224d0f3d830fb3c914d.tar.bz2
pw-0a0b9e9122b5d5702968e224d0f3d830fb3c914d.zip
Fix memory leak when resizing line buffer down.
Could happen when terminal window shrinks vertically.
Diffstat (limited to 'pw.c')
-rw-r--r--pw.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pw.c b/pw.c
index 25f6354..baa62c5 100644
--- a/pw.c
+++ b/pw.c
@@ -560,6 +560,9 @@ static void sigwinch(int sig)
static char **resizebuf(char **buf, size_t nlfrom, size_t 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)