aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorulfvonbelow <strilen@tilde.club>2023-01-29 05:37:34 -0600
committerMartin Schanzenbach <schanzen@gnunet.org>2023-02-06 14:18:24 +0900
commitdc550106149e1ac077438354cb6d7d568edede4d (patch)
treec0b79f04d803bee9d4f92bb675ed45352845d5ed
parent64c5d0472e3bbfaf8cb6c7cb240a85fe190d7bbd (diff)
downloadgnunet-dc550106149e1ac077438354cb6d7d568edede4d.tar.gz
gnunet-dc550106149e1ac077438354cb6d7d568edede4d.zip
SETU: don't leak Operation.{message_control_flow,inquiries_sent}.
Signed-off-by: Martin Schanzenbach <schanzen@gnunet.org>
-rw-r--r--src/setu/gnunet-service-setu.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/setu/gnunet-service-setu.c b/src/setu/gnunet-service-setu.c
index b9dc24dce..f85ddb224 100644
--- a/src/setu/gnunet-service-setu.c
+++ b/src/setu/gnunet-service-setu.c
@@ -1552,6 +1552,16 @@ check_byzantine_bounds (struct Operation *op)
1552} 1552}
1553 1553
1554 1554
1555static enum GNUNET_GenericReturnValue
1556free_values_iter(void *cls,
1557 const struct GNUNET_HashCode *key,
1558 void *value)
1559{
1560 GNUNET_free (value);
1561 return GNUNET_YES;
1562}
1563
1564
1555/* FIXME: the destroy logic is a mess and should be cleaned up! */ 1565/* FIXME: the destroy logic is a mess and should be cleaned up! */
1556 1566
1557/** 1567/**
@@ -1605,6 +1615,19 @@ _GSS_operation_destroy (struct Operation *op)
1605 GNUNET_CONTAINER_multihashmap32_destroy (op->key_to_element); 1615 GNUNET_CONTAINER_multihashmap32_destroy (op->key_to_element);
1606 op->key_to_element = NULL; 1616 op->key_to_element = NULL;
1607 } 1617 }
1618 if (NULL != op->message_control_flow)
1619 {
1620 GNUNET_CONTAINER_multihashmap_iterate (op->message_control_flow,
1621 &free_values_iter,
1622 NULL);
1623 GNUNET_CONTAINER_multihashmap_destroy (op->message_control_flow);
1624 op->message_control_flow = NULL;
1625 }
1626 if (NULL != op->inquiries_sent)
1627 {
1628 GNUNET_CONTAINER_multihashmap_destroy (op->inquiries_sent);
1629 op->inquiries_sent = NULL;
1630 }
1608 if (NULL != set) 1631 if (NULL != set)
1609 { 1632 {
1610 GNUNET_CONTAINER_DLL_remove (set->ops_head, 1633 GNUNET_CONTAINER_DLL_remove (set->ops_head,