From dfc5039d9a8ab7282147500c840c721094f45f4e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 9 Feb 2022 09:18:35 +0100 Subject: -fix leak --- src/exchange-tools/taler-exchange-offline.c | 9 ++++++++- src/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 index 3b6280c7d..3d85d376d 100644 --- 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 index 718facf5e..3fa1007ce 100644 --- 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. -- cgit v1.2.3