From: Daniel Stenberg Date: Sat, 7 Oct 2017 15:54:41 +0000 (+0200) Subject: multi_done: wait for name resolve to finish if still ongoing X-Git-Tag: curl-7_56_1~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe;p=curl multi_done: wait for name resolve to finish if still ongoing ... as we must clean up memory. --- diff --git a/lib/multi.c b/lib/multi.c index faf42f1fa..ec679ba4a 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -537,6 +537,12 @@ static CURLcode multi_done(struct connectdata **connp, /* Stop if multi_done() has already been called */ return CURLE_OK; + if(data->mstate == CURLM_STATE_WAITRESOLVE) { + /* done while still waiting for the resolve to complete */ + struct Curl_dns_entry *throw_away; + (void)Curl_resolver_wait_resolv(conn, &throw_away); + } + Curl_getoff_all_pipelines(data, conn); /* Cleanup possible redirect junk */