From: Daniel Stenberg Date: Wed, 21 Jan 2026 09:08:27 +0000 (+0100) Subject: asyn-ares: abort with OOM error when Curl_dnscache_mk_entry fails X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d89bc6b219165989f27b7dfa1db77d34128ab3a0;p=thirdparty%2Fcurl.git asyn-ares: abort with OOM error when Curl_dnscache_mk_entry fails Closes #20385 --- diff --git a/lib/asyn-ares.c b/lib/asyn-ares.c index 077b97d127..df8a603cc4 100644 --- a/lib/asyn-ares.c +++ b/lib/asyn-ares.c @@ -335,10 +335,13 @@ CURLcode Curl_async_is_resolved(struct Curl_easy *data, Curl_dnscache_mk_entry(data, ares->temp_ai, data->state.async.hostname, 0, data->state.async.port, FALSE); - if(data->state.async.dns) - ares->temp_ai = NULL; /* temp_ai now owned by entry */ + if(!data->state.async.dns) { + result = CURLE_OUT_OF_MEMORY; + goto out; + } + ares->temp_ai = NULL; /* temp_ai now owned by entry */ #ifdef HTTPSRR_WORKS - if(data->state.async.dns) { + { struct Curl_https_rrinfo *lhrr = Curl_httpsrr_dup_move(&ares->hinfo); if(!lhrr) result = CURLE_OUT_OF_MEMORY; @@ -346,7 +349,7 @@ CURLcode Curl_async_is_resolved(struct Curl_easy *data, data->state.async.dns->hinfo = lhrr; } #endif - if(!result && data->state.async.dns) + if(!result) result = Curl_dnscache_add(data, data->state.async.dns); } /* if we have not found anything, report the proper