From: Daniel Stenberg Date: Sun, 27 Oct 2019 21:20:02 +0000 (+0100) Subject: url: Curl_free_request_state() should also free doh handles X-Git-Tag: curl-7_67_0~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0cbd6f8df72cb425e431312d91250d86df83b60b;p=thirdparty%2Fcurl.git url: Curl_free_request_state() should also free doh handles ... or risk DoH memory leaks. Reported-by: Paul Dreik Fixes #4463 Closes #4527 --- diff --git a/lib/url.c b/lib/url.c index 660d241416..bbae273fdb 100644 --- a/lib/url.c +++ b/lib/url.c @@ -399,9 +399,6 @@ CURLcode Curl_close(struct Curl_easy *data) Curl_share_unlock(data, CURL_LOCK_DATA_SHARE); } - /* Leave no dangling DOH handles behind */ - Curl_close(data->req.doh.probe[0].easy); - Curl_close(data->req.doh.probe[1].easy); free(data->req.doh.probe[0].serverdoh.memory); free(data->req.doh.probe[1].serverdoh.memory); curl_slist_free_all(data->req.doh.headers); @@ -1986,6 +1983,10 @@ void Curl_free_request_state(struct Curl_easy *data) { Curl_safefree(data->req.protop); Curl_safefree(data->req.newurl); + Curl_close(data->req.doh.probe[0].easy); + data->req.doh.probe[0].easy = NULL; + Curl_close(data->req.doh.probe[1].easy); + data->req.doh.probe[1].easy = NULL; }