From 70ec11358c3aac5fbae24b02f0c1c671741838dd Mon Sep 17 00:00:00 2001 From: Max Dymond Date: Wed, 4 Mar 2026 10:24:15 +0000 Subject: [PATCH] socks: ensure DNS is freed in failure cases. In several error cases in socks.c the DNS struct is not freed, which leads to memory leaks. Found by: OSS-Fuzz: 447858136 Closes #20813 --- lib/socks.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/socks.c b/lib/socks.c index 912e8c52f5..b7c3bd6146 100644 --- a/lib/socks.c +++ b/lib/socks.c @@ -341,6 +341,8 @@ static CURLproxycode socks4_resolving(struct socks_state *sx, if(result || !dns) { failf(data, "Failed to resolve \"%s\" for SOCKS4 connect.", sx->hostname); + if(dns) + Curl_resolv_unlink(data, &dns); return CURLPX_RESOLVE_HOST; } @@ -371,6 +373,7 @@ static CURLproxycode socks4_resolving(struct socks_state *sx, return CURLPX_SEND_REQUEST; } else { + Curl_resolv_unlink(data, &dns); failf(data, "SOCKS4 connection to %s not supported", sx->hostname); return CURLPX_RESOLVE_HOST; }