summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-11-22 22:57:58 +0100
committerChristian Grothoff <christian@grothoff.org>2020-11-22 22:57:58 +0100
commit6082ac8151fd845e65b2222de03b8b10de555f74 (patch)
tree9ee5d3a22b3e45ac5dc185cda176566b4afbdfad
parentcbba3d5f292517c72b6c20299d9c023ba7a4c344 (diff)
downloadexchange-6082ac8151fd845e65b2222de03b8b10de555f74.tar.gz
exchange-6082ac8151fd845e65b2222de03b8b10de555f74.tar.bz2
exchange-6082ac8151fd845e65b2222de03b8b10de555f74.zip
add missing delayed purge logic
-rw-r--r--src/util/taler-helper-crypto-rsa.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/util/taler-helper-crypto-rsa.c b/src/util/taler-helper-crypto-rsa.c
index b8f959ee3..e72a7824b 100644
--- a/src/util/taler-helper-crypto-rsa.c
+++ b/src/util/taler-helper-crypto-rsa.c
@@ -78,9 +78,7 @@ struct DenominationKey
char *filename;
/**
- * The private key of the denomination. Will be NULL if the private
- * key is not available (this is the case after the key has expired
- * for signing coins, but is still valid for depositing coins).
+ * The private key of the denomination.
*/
struct TALER_DenominationPrivateKey denom_priv;
@@ -590,6 +588,14 @@ handle_done (void *cls)
&sr->header);
GNUNET_free (sr);
}
+ {
+ struct DenominationKey *dk = wi->dk;
+
+ dk->rc--;
+ if ( (0 == dk->rc) &&
+ (dk->purge) )
+ free_dk (dk);
+ }
GNUNET_free (wi);
GNUNET_assert (0 == pthread_mutex_lock (&done_lock));
}