From 7182e4618ad5a0186145fc2aa4a98c2229afdfa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Wed, 5 Jan 2022 14:51:55 +0100 Subject: [PATCH] Fix memory leak regressions in popt 1.18 Fix memory leak regression introduced in commit 7219e1ddc1e8606dda18c1105df0d45d8e8e0e09. Free the actual content, not the array multiple times, and free on reset. --- src/popt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/popt.c b/src/popt.c index 0521c8d..f3f26a3 100644 --- a/src/popt.c +++ b/src/popt.c @@ -216,6 +216,9 @@ void poptResetContext(poptContext con) else con->os->next = 0; + for (i = 0; i < con->numLeftovers; i++) { + con->leftovers[i] = _free(con->leftovers[i]); + } con->numLeftovers = 0; con->nextLeftover = 0; con->restLeftover = 0; @@ -1534,7 +1537,7 @@ poptContext poptFreeContext(poptContext con) con->numExecs = 0; for (i = 0; i < con->numLeftovers; i++) { - con->leftovers[i] = _free(&con->leftovers[i]); + con->leftovers[i] = _free(con->leftovers[i]); } con->leftovers = _free(con->leftovers); -- 2.27.0