39 lines
1.2 KiB
Diff
39 lines
1.2 KiB
Diff
From 7182e4618ad5a0186145fc2aa4a98c2229afdfa8 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
|
|
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
|
|
|