fix memory leak: on repeated refresh reveal, we populated ev_sigs twice

This commit is contained in:
Christian Grothoff 2019-02-17 00:13:14 +01:00
parent 88e611d32b
commit 3ff5bad33e
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -195,11 +195,16 @@ check_exists_cb (void *cls,
GNUNET_break_op (0 == memcmp (tprivs, GNUNET_break_op (0 == memcmp (tprivs,
&rctx->transfer_privs, &rctx->transfer_privs,
sizeof (struct TALER_TransferPrivateKeyP) * num_tprivs)); sizeof (struct TALER_TransferPrivateKeyP) * num_tprivs));
rctx->ev_sigs = GNUNET_new_array (num_newcoins, /* We usually sign early (optimistic!), but in case we change that *and*
struct TALER_DenominationSignature); we do find the operation in the database, we could use this: */
for (unsigned int i=0;i<num_newcoins;i++) if (NULL == rctx->ev_sigs)
rctx->ev_sigs[i].rsa_signature {
= GNUNET_CRYPTO_rsa_signature_dup (rrcs[i].coin_sig.rsa_signature); rctx->ev_sigs = GNUNET_new_array (num_newcoins,
struct TALER_DenominationSignature);
for (unsigned int i=0;i<num_newcoins;i++)
rctx->ev_sigs[i].rsa_signature
= GNUNET_CRYPTO_rsa_signature_dup (rrcs[i].coin_sig.rsa_signature);
}
} }