exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit dfc5039d9a8ab7282147500c840c721094f45f4e
parent bd930549fbcc185ab9f675665b77496af95e00dd
Author: Christian Grothoff <christian@grothoff.org>
Date:   Wed,  9 Feb 2022 09:18:35 +0100

-fix leak

Diffstat:
Msrc/exchange-tools/taler-exchange-offline.c | 9++++++++-
Msrc/exchange/taler-exchange-httpd_keys.c | 4++++
2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/exchange-tools/taler-exchange-offline.c b/src/exchange-tools/taler-exchange-offline.c @@ -2530,7 +2530,7 @@ do_download (char *const *args) * #GNUNET_NO if we had nothing in store but now do * #GNUNET_SYSERR if keys changed from what we remember or other error */ -static int +static enum GNUNET_GenericReturnValue tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) { char *fn; @@ -2603,6 +2603,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) "SECM_ESIGN_PUBKEY", "key malformed"); GNUNET_free (key); + GNUNET_free (fn); return GNUNET_SYSERR; } GNUNET_free (key); @@ -2612,6 +2613,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "ESIGN security module key does not match SECM_ESIGN_PUBKEY in configuration\n"); + GNUNET_free (fn); return GNUNET_SYSERR; } } @@ -2634,6 +2636,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) "SECM_DENOM_PUBKEY", "key malformed"); GNUNET_free (key); + GNUNET_free (fn); return GNUNET_SYSERR; } GNUNET_free (key); @@ -2643,6 +2646,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "DENOM security module key does not match SECM_DENOM_PUBKEY in configuration\n"); + GNUNET_free (fn); return GNUNET_SYSERR; } } @@ -2665,6 +2669,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) "SECM_DENOM_CS_PUBKEY", "key malformed"); GNUNET_free (key); + GNUNET_free (fn); return GNUNET_SYSERR; } GNUNET_free (key); @@ -2674,6 +2679,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "DENOM security module key does not match SECM_DENOM_CS_PUBKEY in configuration\n"); + GNUNET_free (fn); return GNUNET_SYSERR; } } @@ -2700,6 +2706,7 @@ tofu_check (const struct TALER_SecurityModulePublicKeySetP *secmset) GNUNET_free (fn); return GNUNET_SYSERR; } + GNUNET_free (fn); return GNUNET_NO; } diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c @@ -1916,6 +1916,10 @@ create_krd (struct TEH_KeyStateHandle *ksh, r = json_object_update (keys, sig); GNUNET_assert (0 == r); } + else + { + json_decref (extensions); + } // Special case for age restrictions: if enabled, provide the lits of // age-restricted denominations.