From 1d728aae2a8211a7a9f9f66073bdd672e7a1d2cc Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 17 Jul 2007 20:59:53 +0000 Subject: 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. --- CHANGES | 5 +++++ RELEASE-NOTES | 3 ++- lib/ftp.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index e5be0fb3e..570dcba86 100644 --- a/CHANGES +++ b/CHANGES @@ -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) diff --git a/lib/ftp.c b/lib/ftp.c index 61e795881..dcea9ad0c 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -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) -- cgit v1.2.3