From d1820768cce0e797d1f072343868ce1902170e93 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 15 Nov 2023 11:48:32 +0100 Subject: [PATCH] duphandle: also free 'outcurl->cookies' in error path Fixes memory-leak when OOM mid-function Use plain free instead of safefree, since the entire struct is freed below. Remove some free calls that is already freed in Curl_freeset() Closes #12329 --- lib/easy.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/easy.c b/lib/easy.c index d1e7d9b31a..cf254ee555 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -985,13 +985,10 @@ fail: if(outcurl) { #ifndef CURL_DISABLE_COOKIES - curl_slist_free_all(outcurl->state.cookielist); - outcurl->state.cookielist = NULL; + free(outcurl->cookies); #endif - Curl_safefree(outcurl->state.buffer); + free(outcurl->state.buffer); Curl_dyn_free(&outcurl->state.headerb); - Curl_safefree(outcurl->state.url); - Curl_safefree(outcurl->state.referer); Curl_altsvc_cleanup(&outcurl->asi); Curl_hsts_cleanup(&outcurl->hsts); Curl_freeset(outcurl);