commit 1725414094ea39f96d7a999df4d434910f5b090d
parent 41c14edbe413b91caa9ae69071a9f10a63c3513c
Author: ulfvonbelow <striness@tilde.club>
Date: Sun, 5 May 2024 00:59:06 -0500
transport: clean up SharedSecrets in gnunet-communicator-udp.
Signed-off-by: Martin Schanzenbach <schanzen@gnunet.org>
Diffstat:
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
@@ -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,
@@ -923,6 +925,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);
@@ -1070,6 +1076,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 ==
@@ -1079,6 +1086,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);
}