Skip to content
Snippets Groups Projects
Commit ad9e83a9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Dirk Manske's fix that makes sure we cancel the ares resolve when we time out

from a name resolve. Without this, we leak memory!
parent 6c9d96e8
No related branches found
No related tags found
No related merge requests found
......@@ -617,7 +617,7 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
timeout = conn->data->set.timeout;
/* Wait for the name resolve query to complete. */
while (timeout > 0) {
while (1) {
int nfds=0;
fd_set read_fds, write_fds;
struct timeval *tvp, tv, store;
......@@ -641,6 +641,11 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
ares_process(data->state.areschannel, &read_fds, &write_fds);
timeout -= Curl_tvdiff(Curl_tvnow(), now)/1000; /* spent time */
if (timeout < 0) {
/* our timeout, so we cancel the ares operation */
ares_cancel(data->state.areschannel);
break;
}
}
/* Operation complete, if the lookup was successful we now have the entry
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment