From b84876ba696294849a5abb69543cd9f899e35ee7 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 20 Apr 2009 21:41:17 +0000 Subject: [PATCH] - Leanic Lefever reported a crash and did some detailed research on why and how it occurs (http://curl.haxx.se/mail/lib-2009-04/0289.html). The conclusion was that if an error is detected and Curl_done() is called for the connection, ftp_done() could at times return another error code that then would take precedence and that new code confused existing logic that works for the first error code (CURLE_SEND_ERROR) only. --- CHANGES | 7 +++++++ RELEASE-NOTES | 5 +++-- lib/ftp.c | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index ceee6cc..d5317e8 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,13 @@ Changelog Daniel Stenberg (20 Apr 2009) +- Leanic Lefever reported a crash and did some detailed research on why and + how it occurs (http://curl.haxx.se/mail/lib-2009-04/0289.html). The + conclusion was that if an error is detected and Curl_done() is called for + the connection, ftp_done() could at times return another error code that + then would take precedence and that new code confused existing logic that + works for the first error code (CURLE_SEND_ERROR) only. + - Gisle Vanem noticed that --libtool would produce bogus strings at times for OBJECTPOINT options. Now we've introduced a new function - my_setopt_str - within the app for setting plain string options to avoid the risk of this diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 67c98fd..efb1f24 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -30,6 +30,7 @@ This release includes the following bugfixes: o improved the CURLOPT_NOBODY set to 0 confusions o persistent connections when doing FTP over a HTTP proxy o --libcurl bogus strings where other data was pointed to + o crash related to FTP and "Re-used connection seems dead, get a new one" This release includes the following known bugs: @@ -40,7 +41,7 @@ advice from friends like these: Daniel Fandrich, Yang Tse, David James, Chris Deidun, Bill Egert, Andre Guibert de Bruet, Andreas Farber, Frank Hempel, Pierre Brico, - Kamil Dudka, Jim Freeman, Daniel Johnson, Toshio Kuratomi, Martin Storsjö, - Pramod Sharma, Gisle Vanem + Kamil Dudka, Jim Freeman, Daniel Johnson, Toshio Kuratomi, Martin Storsjo, + Pramod Sharma, Gisle Vanem, Leanic Lefever Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/ftp.c b/lib/ftp.c index b78617e..422bac2 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -3185,6 +3185,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status, ftpc->cwdfail = TRUE; /* set this TRUE to prevent us to remember the current path, as this connection is going */ conn->bits.close = TRUE; /* marked for closure */ + result = status; /* use the already set error code */ break; } -- 2.7.4