From b68026f7f4f4f99926fabf7f7b8ec948d5fcdc72 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Sat, 13 Feb 2021 02:45:33 -0500 Subject: hostip: fix crash in sync resolver builds that use DOH - Guard some Curl_async accesses with USE_CURL_ASYNC instead of !CURLRES_SYNCH. This is another follow-up to 8335c64 which moved the async struct from the connectdata struct into the Curl_easy struct. A previous follow-up 6cd167a fixed building for sync resolver by guarding some async struct accesses with !CURLRES_SYNCH. The problem is since DOH (DNS-over-HTTPS) is available as an asynchronous secondary resolver the async struct may be used even when libcurl is built for the sync resolver. That means that CURLRES_SYNCH and USE_CURL_ASYNC may be defined at the same time. Closes https://github.com/curl/curl/pull/6603 --- lib/hostip.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/hostip.c b/lib/hostip.c index 1a86e6a23..e6a92f2ab 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -521,10 +521,10 @@ enum resolve_t Curl_resolv(struct Curl_easy *data, int st; Curl_set_in_callback(data, true); st = data->set.resolver_start( -#ifdef CURLRES_SYNCH - NULL, -#else +#ifdef USE_CURL_ASYNC data->state.async.resolver, +#else + NULL, #endif NULL, data->set.resolver_start_client); @@ -1108,7 +1108,7 @@ CURLcode Curl_once_resolved(struct Curl_easy *data, bool *protocol_done) CURLcode result; struct connectdata *conn = data->conn; -#ifndef CURLRES_SYNCH +#ifdef USE_CURL_ASYNC if(data->state.async.dns) { conn->dns_entry = data->state.async.dns; data->state.async.dns = NULL; -- cgit v1.2.1