diff options
author | Daniel Stenberg <daniel@haxx.se> | 2009-05-19 20:54:31 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2009-05-19 20:54:31 +0000 |
commit | de7a14003c0ef455e074cc9629bf9faae3474a7e (patch) | |
tree | 3b4dbff5ff7a6acc5df9e8692a3ed6ff58e562be | |
parent | e3ead9f58565b5216610da4c3e699676013218b4 (diff) |
- Kamil Dudka brought the patch from the Redhat bug entry
https://bugzilla.redhat.com/show_bug.cgi?id=427966 which was libcurl closing
a bad file descriptor when closing down the FTP data connection. Caolan
McNamara seems to be the original author of it.
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | RELEASE-NOTES | 4 | ||||
-rw-r--r-- | lib/ftp.c | 7 |
3 files changed, 12 insertions, 5 deletions
@@ -6,6 +6,12 @@ Changelog +Daniel Stenberg (19 May 2009) +- Kamil Dudka brought the patch from the Redhat bug entry + https://bugzilla.redhat.com/show_bug.cgi?id=427966 which was libcurl closing + a bad file descriptor when closing down the FTP data connection. Caolan + McNamara seems to be the original author of it. + Version 7.19.5 (18 May 2009) Daniel Stenberg (17 May 2009) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 91b5b67d1..6388ea575 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -13,7 +13,7 @@ This release includes the following changes: This release includes the following bugfixes: - o + o crash on bad socket close with FTP This release includes the following known bugs: @@ -22,6 +22,6 @@ This release includes the following known bugs: This release would not have looked like this without help, code, reports and advice from friends like these: - + Kamil Dudka, Caolan McNamara Thanks! (and sorry if I forgot to mention someone) @@ -3251,9 +3251,10 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status, /* Note that we keep "use" set to TRUE since that (next) connection is still requested to use SSL */ } - sclose(conn->sock[SECONDARYSOCKET]); - - conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD; + if(CURL_SOCKET_BAD != conn->sock[SECONDARYSOCKET]) { + sclose(conn->sock[SECONDARYSOCKET]); + conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD; + } } if((ftp->transfer == FTPTRANSFER_BODY) && ftpc->ctl_valid && |