diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2021-02-13 02:45:33 -0500 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2021-02-13 23:03:58 -0500 |
commit | b68026f7f4f4f99926fabf7f7b8ec948d5fcdc72 (patch) | |
tree | e424fceada5fa1c6ceb610b9de7a8b4bfd656731 | |
parent | 835c2634212257d41c1a30c6cc0ad3ed60bb9aca (diff) | |
download | curl-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.c | 8 |
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; |