summaryrefslogtreecommitdiff
path: root/src/lib/testing_api_cmd_refresh.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/testing_api_cmd_refresh.c')
-rw-r--r--src/lib/testing_api_cmd_refresh.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/testing_api_cmd_refresh.c b/src/lib/testing_api_cmd_refresh.c
index 2e921cefd..beaec1688 100644
--- a/src/lib/testing_api_cmd_refresh.c
+++ b/src/lib/testing_api_cmd_refresh.c
@@ -988,6 +988,9 @@ refresh_melt_run (void *cls,
&melt_amount,
&fresh_pk->fee_withdraw));
rms->fresh_pks[i] = *fresh_pk;
+ /* Make a deep copy of the RSA key */
+ rms->fresh_pks[i].key.rsa_public_key = GNUNET_CRYPTO_rsa_public_key_dup (
+ fresh_pk->key.rsa_public_key);
}
rms->refresh_data = TALER_EXCHANGE_refresh_prepare
(rms->melt_priv, &melt_amount, melt_sig,
@@ -1041,6 +1044,11 @@ refresh_melt_cleanup (void *cls,
GNUNET_SCHEDULER_cancel (rms->retry_task);
rms->retry_task = NULL;
}
+ if (NULL != rms->fresh_pks)
+ {
+ for (unsigned int i = 0; i < rms->num_fresh_coins; i++)
+ GNUNET_CRYPTO_rsa_public_key_free (rms->fresh_pks[i].key.rsa_public_key);
+ }
GNUNET_free_non_null (rms->fresh_pks);
rms->fresh_pks = NULL;
GNUNET_free_non_null (rms->refresh_data);