summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Satiro <raysatiro@yahoo.com>2021-02-13 02:45:33 -0500
committerJay Satiro <raysatiro@yahoo.com>2021-02-13 23:03:58 -0500
commitb68026f7f4f4f99926fabf7f7b8ec948d5fcdc72 (patch)
treee424fceada5fa1c6ceb610b9de7a8b4bfd656731
parent835c2634212257d41c1a30c6cc0ad3ed60bb9aca (diff)
downloadcurl-b68026f7f4f4f99926fabf7f7b8ec948d5fcdc72.tar.gz
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
-rw-r--r--lib/hostip.c8
1 files 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;