diff options
Diffstat (limited to 'src/lib/testing_api_cmd_refresh.c')
-rw-r--r-- | src/lib/testing_api_cmd_refresh.c | 8 |
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); |