From: Daniel Stenberg Date: Wed, 19 Nov 2025 07:32:41 +0000 (+0100) Subject: tool_cfgable: free ssl-sessions at exit X-Git-Tag: rc-8_18_0-1~233 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c255d2fdcbf27b4bfd668ae3784bb657449d6889;p=thirdparty%2Fcurl.git tool_cfgable: free ssl-sessions at exit Also free the memory correctly in tool_ssls_load Closes #19602 --- diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c index 2ddb0ad2fc..086e4ac216 100644 --- a/src/tool_cfgable.c +++ b/src/tool_cfgable.c @@ -260,6 +260,7 @@ static void free_globalconfig(void) curlx_fclose(global->trace_stream); global->trace_stream = NULL; + tool_safefree(global->ssl_sessions); tool_safefree(global->libcurl); #ifdef _WIN32 free(global->term.buf); diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index dc78f2db44..717d35a1f5 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -29,6 +29,7 @@ #include "tool_sdecls.h" #include "tool_urlglob.h" #include "var.h" +#include "memdebug.h" /* keep this as LAST include */ /* the type we use for storing a single boolean bit */ #ifndef BIT diff --git a/src/tool_ssls.c b/src/tool_ssls.c index 2b8cc10672..ab78014c0a 100644 --- a/src/tool_ssls.c +++ b/src/tool_ssls.c @@ -80,8 +80,8 @@ CURLcode tool_ssls_load(struct OperationConfig *config, i = imported = 0; while(my_get_line(fp, &buf, &error)) { ++i; - curl_free(shmac); - curl_free(sdata); + tool_safefree(shmac); + tool_safefree(sdata); line = curlx_dyn_ptr(&buf); c = memchr(line, ':', strlen(line)); @@ -125,8 +125,8 @@ out: if(fp) curlx_fclose(fp); curlx_dyn_free(&buf); - curl_free(shmac); - curl_free(sdata); + free(shmac); + free(sdata); return r; } @@ -165,7 +165,7 @@ static CURLcode tool_ssls_exp(CURL *easy, void *userptr, goto out; if(EOF == fputc(':', ctx->fp)) goto out; - curl_free(enc); + tool_safefree(enc); r = curlx_base64_encode((const char *)sdata, sdata_len, &enc, &enc_len); if(r) goto out; @@ -179,7 +179,7 @@ static CURLcode tool_ssls_exp(CURL *easy, void *userptr, out: if(r) warnf("Warning: error saving SSL session for '%s': %d", session_key, r); - curl_free(enc); + free(enc); return r; }