From 91188c64807dc4ab47b117349f638c03746186b7 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 28 Oct 2023 00:22:49 +0200 Subject: [PATCH] asyn-ares: handle no connection in the addrinfo callback To avoid crashing. Follow-up from 56a4db2 Closes #12219 --- lib/asyn-ares.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/asyn-ares.c b/lib/asyn-ares.c index 1da1901278..764eadbfcf 100644 --- a/lib/asyn-ares.c +++ b/lib/asyn-ares.c @@ -729,14 +729,16 @@ static void addrinfo_cb(void *arg, int status, int timeouts, struct ares_addrinfo *result) { struct Curl_easy *data = (struct Curl_easy *)arg; - struct thread_data *res = data->conn->resolve_async.tdata; - (void)timeouts; - if(ARES_SUCCESS == status) { - res->temp_ai = ares2addr(result->nodes); - res->last_status = CURL_ASYNC_SUCCESS; - ares_freeaddrinfo(result); + if(data->conn) { + struct thread_data *res = data->conn->resolve_async.tdata; + (void)timeouts; + if(ARES_SUCCESS == status) { + res->temp_ai = ares2addr(result->nodes); + res->last_status = CURL_ASYNC_SUCCESS; + ares_freeaddrinfo(result); + } + res->num_pending--; } - res->num_pending--; } #endif