From e5503c52754277a54e3107f622a7c73af74f3a21 Mon Sep 17 00:00:00 2001
From: ulfvonbelow <striness@tilde.club>
Date: Sat, 4 May 2024 19:35:03 -0500
Subject: [PATCH] setu: fix memory leak in strata_estimator_destroy.

And also in the "failed to allocate memory" case of strata_estimator_create.
---
 src/service/setu/gnunet-service-setu_strata_estimator.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/service/setu/gnunet-service-setu_strata_estimator.c b/src/service/setu/gnunet-service-setu_strata_estimator.c
index 43ccf3afd..e5af92980 100644
--- a/src/service/setu/gnunet-service-setu_strata_estimator.c
+++ b/src/service/setu/gnunet-service-setu_strata_estimator.c
@@ -331,6 +331,12 @@ strata_estimator_create (unsigned int strata_count,
                     "Failed to allocate memory for strata estimator\n");
         for (j = 0; j < i; j++)
           ibf_destroy (se->stratas[strata_ctr]->strata[i]);
+        for (j = 0; j <= strata_ctr; j++)
+        {
+          GNUNET_free (se->stratas[j]->strata);
+          GNUNET_free (se->stratas[j]);
+        }
+        GNUNET_free (se->stratas);
         GNUNET_free (se);
         return NULL;
       }
@@ -463,6 +469,8 @@ strata_estimator_destroy (struct MultiStrataEstimator *se)
     for (i = 0; i < se->stratas[strata_ctr]->strata_count; i++)
       ibf_destroy (se->stratas[strata_ctr]->strata[i]);
     GNUNET_free (se->stratas[strata_ctr]->strata);
+    GNUNET_free (se->stratas[strata_ctr]);
   }
+  GNUNET_free (se->stratas);
   GNUNET_free (se);
 }
-- 
2.41.0

