From b20fa51519586affb21fd8591a6f97a234fa7b3c Mon Sep 17 00:00:00 2001 From: ulfvonbelow Date: Sun, 29 Jan 2023 06:21:24 -0600 Subject: [PATCH] NAT: don't leak AddrEntries when unregistering. --- src/nat/nat_api.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/nat/nat_api.c b/src/nat/nat_api.c index 3072cff7f..31f8f388d 100644 --- a/src/nat/nat_api.c +++ b/src/nat/nat_api.c @@ -673,6 +673,9 @@ GNUNET_NAT_request_reversal (struct GNUNET_NAT_Handle *nh, void GNUNET_NAT_unregister (struct GNUNET_NAT_Handle *nh) { + struct AddrEntry *ae; + struct AddrEntry *next; + if (NULL != nh->mq) { GNUNET_MQ_destroy (nh->mq); @@ -683,6 +686,14 @@ GNUNET_NAT_unregister (struct GNUNET_NAT_Handle *nh) GNUNET_SCHEDULER_cancel (nh->reconnect_task); nh->reconnect_task = NULL; } + next = nh->ae_head; + while (NULL != next) + { + ae = next; + next = next->next; + GNUNET_CONTAINER_DLL_remove (nh->ae_head, nh->ae_tail, ae); + GNUNET_free (ae); + } GNUNET_free (nh->reg); GNUNET_free (nh); } -- 2.38.1