From: Daniel Stenberg Date: Mon, 20 Apr 2009 21:41:17 +0000 (+0000) Subject: - Leanic Lefever reported a crash and did some detailed research on why and X-Git-Tag: curl-7_19_5~189 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b84876ba696294849a5abb69543cd9f899e35ee7;p=curl - 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. --- diff --git a/CHANGES b/CHANGES index ceee6cc2d..d5317e8c0 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 67c98fd18..efb1f2497 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 b78617e75..422bac219 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; }