exchange

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

commit 7b2d70e10a960f053bfe89bd9568ae3d603a0df2
parent e9837976d0c89c2fa7a50b61854d1cf6da5e8705
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 12 Oct 2026 22:56:26 +0200

guard maps with NULL check

Diffstat:
Msrc/exchange/taler-exchange-httpd_secmod-helpers.c | 43+++++++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 14 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd_secmod-helpers.c b/src/exchange/taler-exchange-httpd_secmod-helpers.c @@ -510,20 +510,35 @@ free_esign_cb (void *cls, void TEH_SECMOD_destroy_key_helpers () { - GNUNET_CONTAINER_multihashmap_iterate (denom_keys, - &free_denom_cb, - NULL); - GNUNET_CONTAINER_multihashmap_destroy (rsa_keys); - rsa_keys = NULL; - GNUNET_CONTAINER_multihashmap_destroy (cs_keys); - cs_keys = NULL; - GNUNET_CONTAINER_multihashmap_destroy (denom_keys); - denom_keys = NULL; - GNUNET_CONTAINER_multipeermap_iterate (esign_keys, - &free_esign_cb, - NULL); - GNUNET_CONTAINER_multipeermap_destroy (esign_keys); - esign_keys = NULL; + /* Note: the maps may be NULL if #TEH_SECMOD_setup_key_helpers() + failed before creating them. */ + if (NULL != denom_keys) + GNUNET_CONTAINER_multihashmap_iterate (denom_keys, + &free_denom_cb, + NULL); + if (NULL != rsa_keys) + { + GNUNET_CONTAINER_multihashmap_destroy (rsa_keys); + rsa_keys = NULL; + } + if (NULL != cs_keys) + { + GNUNET_CONTAINER_multihashmap_destroy (cs_keys); + cs_keys = NULL; + } + if (NULL != denom_keys) + { + GNUNET_CONTAINER_multihashmap_destroy (denom_keys); + denom_keys = NULL; + } + if (NULL != esign_keys) + { + GNUNET_CONTAINER_multipeermap_iterate (esign_keys, + &free_esign_cb, + NULL); + GNUNET_CONTAINER_multipeermap_destroy (esign_keys); + esign_keys = NULL; + } if (NULL != rsadh) { TALER_CRYPTO_helper_rsa_disconnect (rsadh);