diff --git a/CHANGES b/CHANGES index 370138e3154e6f0790f1170e22c003026e2ecf49..f03c4c3b79a3ba6b284df0a16dca9490811a86b0 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,9 @@ Changelog Daniel S (12 July 2007) +- Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation + could in fact get stuck in an endless loop. + - Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation: fail to connect if there is no Common Name field found in the remote cert. We should deprecate the support for this set to 1 anyway soon, since the diff --git a/RELEASE-NOTES b/RELEASE-NOTES index ccaa89007becd0e7a66e4c21624ef048bcca83ab..ca1f30a5f15c2ca66157c821a0c85b34d0a68766 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -19,6 +19,7 @@ This release includes the following bugfixes: o problem with closed proxy connection during HTTP CONNECT auth negotiation o transfer-encoding skipping didn't ignore the 407 response bodies properly o CURLOPT_SSL_VERIFYHOST set to 1 + o CONNECT endless loop This release includes the following known bugs: diff --git a/lib/url.c b/lib/url.c index 24cbaaf8906b6a40f2d9118428b4959fb07345f3..a12d94d639cfa57836bba379720bd24590e6b701 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4071,6 +4071,12 @@ static CURLcode SetupConnection(struct connectdata *conn, } *protocol_done = FALSE; /* default to not done */ + /* set proxy_connect_closed to false unconditionally already here since it + is used strictly to provide extra information to a parent function in the + case of proxy CONNECT failures and we must make sure we don't have it + lingering set from a previous invoke */ + conn->bits.proxy_connect_closed = FALSE; + /************************************************************* * Set user-agent for HTTP *************************************************************/