summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan Roe <duncan_roe@optusnet.com.au>2024-05-07 09:17:19 +1000
committerFlorian Westphal <fw@strlen.de>2024-09-15 17:27:25 +0200
commitf05b188f8b4ccd1d3f466c3e28390c4c2005fa19 (patch)
treef7042f81e0898550c9a32476ad19a1e734a8f412
parent220692555963026bb0de4ebd49cf29feaf4d62f6 (diff)
Stop a memory leak in nfq_close
0c5e5fb introduced struct nfqnl_q_handle *qh_list which can point to dynamically acquired memory. Without this patch, that memory is not freed. Fixes: 0c5e5fb15205 ("sync with all 'upstream' changes in libnfnetlink_log") Signed-off-by: Duncan Roe <duncan_roe@optusnet.com.au> Signed-off-by: Florian Westphal <fw@strlen.de>
-rw-r--r--src/libnetfilter_queue.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
index bf67a19..f152efb 100644
--- a/src/libnetfilter_queue.c
+++ b/src/libnetfilter_queue.c
@@ -481,7 +481,13 @@ EXPORT_SYMBOL
int nfq_close(struct nfq_handle *h)
{
int ret;
+ struct nfq_q_handle *qh;
+ while (h->qh_list) {
+ qh = h->qh_list;
+ h->qh_list = qh->next;
+ free(qh);
+ }
ret = nfnl_close(h->nfnlh);
if (ret == 0)
free(h);