From f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 7 Oct 2017 17:54:41 +0200 Subject: [PATCH] multi_done: wait for name resolve to finish if still ongoing ... as we must clean up memory. --- lib/multi.c | 6 ++++++ 1 file changed, 6 insertions(+) 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 */