diff options
author | Daniel Stenberg <daniel@haxx.se> | 2007-07-17 20:59:53 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2007-07-17 20:59:53 +0000 |
commit | 1d728aae2a8211a7a9f9f66073bdd672e7a1d2cc (patch) | |
tree | 8224def10df7d6187d76999925c32e9a3a64154d | |
parent | 98b9349be789af03bf5c311cb996eb55cc3aa12b (diff) |
Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made
a control connection that was deemed "dead" to yet be re-used in a following
request. We must make sure the connection gets closed on this situation.
-rw-r--r-- | CHANGES | 5 | ||||
-rw-r--r-- | RELEASE-NOTES | 3 | ||||
-rw-r--r-- | lib/ftp.c | 2 |
3 files changed, 8 insertions, 2 deletions
@@ -6,6 +6,11 @@ Changelog +Daniel S (17 July 2007) +- Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made + a control connection that was deemed "dead" to yet be re-used in a following + request. + Daniel S (13 July 2007) - Colin Hogben filed bug report #1750274 (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 7f1ccf4ec..6facec926 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -22,6 +22,7 @@ This release includes the following bugfixes: o CONNECT endless loop o krb5 support builds with Heimdal o added returned error string for connection refused case + o re-use of dead control connections This release includes the following known bugs: @@ -39,6 +40,6 @@ This release would not have looked like this without help, code, reports and advice from friends like these: Dan Fandrich, Song Ma, Daniel Black, Giancarlo Formicuccia, Shmulik Regev, - Daniel Cater, Colin Hogben + Daniel Cater, Colin Hogben, Jofell Gallardo Thanks! (and sorry if I forgot to mention someone) @@ -3137,7 +3137,7 @@ CURLcode Curl_ftp_done(struct connectdata *conn, CURLcode status, bool premature if(!nread && (CURLE_OPERATION_TIMEDOUT == result)) { failf(data, "control connection looks dead"); ftpc->ctl_valid = FALSE; /* mark control connection as bad */ - return result; + conn->bits.close = TRUE; /* mark for closure */ } if(result) |