From 6513303498d36b08d2ae815311248ed818cf668e Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 1 Dec 2005 23:42:03 +0000 Subject: [PATCH] Jamie Newton pointed out that libcurl's file:// code would close() a zero file descriptor if given a non-existing file. --- CHANGES | 4 ++++ RELEASE-NOTES | 7 ++++--- lib/file.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index d162878a8..b1cad112b 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,10 @@ +Daniel (2 December 2005) +- Jamie Newton pointed out that libcurl's file:// code would close() a zero + file descriptor if given a non-existing file. + Daniel (24 November 2005) - Doug Kaufman provided a set of patches to make curl build fine on DJGPP again using configure. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 148fac0b2..f84c2c377 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -19,6 +19,7 @@ This release includes the following changes: This release includes the following bugfixes: + o using file:// on non-existing files are properly handled o builds fine on DJGPP o CURLOPT_ERRORBUFFER is now always filled in on errors o curl outputs error on bad --limit-rate units @@ -51,8 +52,8 @@ This release would not have looked like this without help, code, reports and advice from friends like these: Dave Dribin, Bradford Bruce, Temprimus, Ofer, Dima Barsky, Amol Pattekar, Jaz - Fresh, tommink[at]post.pl, Gisle Vanem, Nis Jorgensen, Vilmos Nebehaj, - Dmitry Bartsevich, David Lang, Eugene Kotlyarov, Jan Kunder, Yang Tse, - Quagmire, Albert Chin, David Shaw, Doug Kaufman, Bryan Henderson + Fresh, tommink[at]post.pl, Gisle Vanem, Nis Jorgensen, Vilmos Nebehaj, Dmitry + Bartsevich, David Lang, Eugene Kotlyarov, Jan Kunder, Yang Tse, Quagmire, + Albert Chin, David Shaw, Doug Kaufman, Bryan Henderson, Jamie Newton Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/file.c b/lib/file.c index c325a4673..dbfe81cfa 100644 --- a/lib/file.c +++ b/lib/file.c @@ -158,12 +158,12 @@ CURLcode Curl_file_connect(struct connectdata *conn) #endif file->freepath = real_path; /* free this when done */ + file->fd = fd; if(!conn->data->set.upload && (fd == -1)) { failf(conn->data, "Couldn't open file %s", conn->path); Curl_file_done(conn, CURLE_FILE_COULDNT_READ_FILE); return CURLE_FILE_COULDNT_READ_FILE; } - file->fd = fd; return CURLE_OK; }