commit 6a22af30972d2c48947a004e37bf0566a1932856
parent a12a3ab62dd4b689378cdc974040aeb5d93df85c
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 9 May 2025 17:48:48 +0200
-fix another leak
Diffstat:
4 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/src/lib/exchange_api_refresh_common.c b/src/lib/exchange_api_refresh_common.c
@@ -23,6 +23,7 @@
#include "platform.h"
#include "exchange_api_refresh_common.h"
+
void
TALER_EXCHANGE_free_melt_data_v27 (struct MeltData_v27 *md)
{
@@ -30,6 +31,7 @@ TALER_EXCHANGE_free_melt_data_v27 (struct MeltData_v27 *md)
{
for (unsigned int i = 0; i < md->num_fresh_coins; i++)
TALER_blinded_planchet_free (&md->kappa_blinded_planchets[k][i]);
+ GNUNET_free (md->kappa_blinded_planchets[k]);
}
GNUNET_free (md->denoms_h);
GNUNET_free (md->denom_pubs);
diff --git a/src/lib/exchange_api_reveal_melt.c b/src/lib/exchange_api_reveal_melt.c
@@ -355,8 +355,6 @@ perform_protocol (
curl_easy_cleanup (curlh);
TALER_EXCHANGE_reveal_melt_cancel (mrh);
}
-
- return;
}
diff --git a/src/testing/testing_api_cmd_refresh.c b/src/testing/testing_api_cmd_refresh.c
@@ -569,9 +569,8 @@ melt_reveal_run (void *cls,
rms->reveal_melt_input.rms = &rms->rms;
rms->reveal_melt_input.melt_input = &rms->melt_input;
rms->reveal_melt_input.blinding_seed = rms->no_blinding_seed
- ? NULL
- : &rms->
- blinding_seed;
+ ? NULL
+ : &rms->blinding_seed;
rms->reveal_melt_input.num_blinding_values = rms->num_blinding_values;
rms->reveal_melt_input.blinding_values = rms->blinding_values;
rms->reveal_melt_input.noreveal_index = rms->noreveal_index;
@@ -711,6 +710,13 @@ melt_cb (void *cls,
if (NULL != mr->details.ok.blinding_seed)
rms->blinding_seed = *mr->details.ok.blinding_seed;
rms->num_blinding_values = mr->details.ok.num_melt_blinding_values;
+ if (NULL != rms->blinding_values)
+ {
+ GNUNET_break (0); /* can this this happen? Check! */
+ for (unsigned int i = 0; i < rms->num_blinding_values; i++)
+ TALER_denom_ewv_free (&rms->blinding_values[i]);
+ GNUNET_free (rms->blinding_values);
+ }
rms->blinding_values = GNUNET_new_array (
rms->num_blinding_values,
struct TALER_ExchangeBlindingValues);
@@ -778,6 +784,13 @@ melt_run (void *cls,
num_fresh_coins++)
;
rms->num_fresh_coins = num_fresh_coins;
+ /* Free old data structure in case this is a retry! */
+ if (NULL != rms->fresh_pks)
+ {
+ for (unsigned int i = 0; i < rms->num_fresh_coins; i++)
+ TALER_denom_pub_free (&rms->fresh_pks[i].key);
+ GNUNET_free (rms->fresh_pks);
+ }
rms->fresh_pks = GNUNET_new_array (
num_fresh_coins,
struct TALER_EXCHANGE_DenomPublicKey);
@@ -1027,7 +1040,7 @@ melt_traits (void *cls,
(NULL != rms->reveal_melt_input.blinding_values)
? TALER_TESTING_make_trait_exchange_blinding_values (
index,
- &rms->reveal_melt_input.blinding_values[index ])
+ &rms->reveal_melt_input.blinding_values[index])
: TALER_TESTING_trait_end (),
TALER_TESTING_trait_end ()
};
diff --git a/src/util/secmod_rsa.c b/src/util/secmod_rsa.c
@@ -1980,9 +1980,6 @@ TALER_SECMOD_rsa_run (void *cls,
GNUNET_free (secname);
return;
}
- GNUNET_asprintf (&secname,
- "%s-secmod-rsa",
- opt->section);
opt->global_ret = TES_listen_start (cfg,
secname,
&cb);