From c8ee6c3444ffe00fbe7c5257ed380c439b4ef117 Mon Sep 17 00:00:00 2001 From: ulfvonbelow Date: Sun, 5 May 2024 00:59:06 -0500 Subject: [PATCH] transport: clean up SharedSecrets in gnunet-communicator-udp. --- src/service/transport/gnunet-communicator-udp.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/service/transport/gnunet-communicator-udp.c b/src/service/transport/gnunet-communicator-udp.c index e9496c571..2a2f3a409 100644 --- a/src/service/transport/gnunet-communicator-udp.c +++ b/src/service/transport/gnunet-communicator-udp.c @@ -883,6 +883,8 @@ bi_destroy (struct BroadcastInterface *bi) GNUNET_free (bi); } +static int +secret_destroy (struct SharedSecret *ss); /** * Destroys a receiving state due to timeout or shutdown. @@ -892,7 +894,7 @@ bi_destroy (struct BroadcastInterface *bi) static void receiver_destroy (struct ReceiverAddress *receiver) { - + struct SharedSecret *ss; receiver->receiver_destroy_called = GNUNET_YES; GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, @@ -918,6 +920,10 @@ receiver_destroy (struct ReceiverAddress *receiver) "# receivers active", GNUNET_CONTAINER_multihashmap_size (receivers), GNUNET_NO); + while (NULL != (ss = receiver->ss_head)) + { + secret_destroy (ss); + } GNUNET_free (receiver->address); GNUNET_free (receiver->foreign_addr); GNUNET_free (receiver); @@ -1065,6 +1071,7 @@ secret_destroy (struct SharedSecret *ss) static void sender_destroy (struct SenderAddress *sender) { + struct SharedSecret *ss; sender->sender_destroy_called = GNUNET_YES; GNUNET_assert ( GNUNET_YES == @@ -1074,6 +1081,10 @@ sender_destroy (struct SenderAddress *sender) "# senders active", GNUNET_CONTAINER_multihashmap_size (senders), GNUNET_NO); + while (NULL != (ss = sender->ss_head)) + { + secret_destroy (ss); + } GNUNET_free (sender->address); GNUNET_free (sender); } -- 2.41.0