donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit 2da4e542901630c08bcc804dee1ca1a1e0995617
parent bb8b6bc0d5245cbc70e1347fae9d00b1923ea715
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Fri, 17 Jul 2026 19:38:52 +0200

-fix leak

Diffstat:
Msrc/donau/donau-httpd_get-keys.c | 34++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/src/donau/donau-httpd_get-keys.c b/src/donau/donau-httpd_get-keys.c @@ -601,6 +601,23 @@ check_esign_sm_pub (const struct TALER_SecurityModulePublicKeyP *sm_pub) } +/** + * Release memory in @a ksh + * + * @param[in] ksh key state to clean up + */ +static void +destroy_key_state (struct DH_KeyStateHandle *ksh) +{ + if (NULL != ksh->response_compressed) + MHD_destroy_response (ksh->response_compressed); + if (NULL != ksh->response_uncompressed) + MHD_destroy_response (ksh->response_uncompressed); + GNUNET_free (ksh->etag); + GNUNET_free (ksh); +} + + void DH_keys_finished () { @@ -635,18 +652,11 @@ DH_keys_finished () GNUNET_CONTAINER_multipeermap_destroy (esign_keys); esign_keys = NULL; } -} - - -static void -destroy_key_state (struct DH_KeyStateHandle *ksh) -{ - if (NULL != ksh->response_compressed) - MHD_destroy_response (ksh->response_compressed); - if (NULL != ksh->response_uncompressed) - MHD_destroy_response (ksh->response_uncompressed); - GNUNET_free (ksh->etag); - GNUNET_free (ksh); + if (NULL != key_state) + { + destroy_key_state (key_state); + key_state = NULL; + } }