diff options
author | Duncan Roe <duncan_roe@optusnet.com.au> | 2024-05-07 09:17:19 +1000 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2024-09-15 17:27:25 +0200 |
commit | f05b188f8b4ccd1d3f466c3e28390c4c2005fa19 (patch) | |
tree | f7042f81e0898550c9a32476ad19a1e734a8f412 | |
parent | 220692555963026bb0de4ebd49cf29feaf4d62f6 (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.c | 6 |
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); |