Kjetil Jacobsen reported an open file leak in file:// transfers of empty
authorDaniel Stenberg <daniel@haxx.se>
Tue, 17 Aug 2004 12:00:39 +0000 (12:00 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 17 Aug 2004 12:00:39 +0000 (12:00 +0000)
files.

CHANGES
lib/file.c

diff --git a/CHANGES b/CHANGES
index b0b0275..10f2a7d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,16 @@
 
                                   Changelog
 
+Daniel (17 August 2004)
+- Kjetil Jacobsen noticed that when transferring a file:// URL pointing to an
+  empty file, libcurl would return with the file still open.
+
+- Alexander Krasnostavsky pointed out that the configure script needs to define
+  _THREAD_SAFE for AIX systems to make libcurl built really thread-safe.
+
+  Also added a check for the xlc compiler on AIX, and if that is detect we use
+  the -qthreaded compiler option
+
 Daniel (16 August 2004)
 - libcurl now allows a custom "Accept-Encoding:" header override the
   internally set one that gets set with CURLOPT_ENCODING. Pointed out by Alex.
index 20cb918..57201d4 100644 (file)
@@ -177,6 +177,9 @@ CURLcode Curl_file_done(struct connectdata *conn,
   (void)status; /* not used */
   Curl_safefree(file->freepath);
 
+  if(file->fd != -1)
+    close(file->fd);
+
   return CURLE_OK;
 }
 
@@ -227,7 +230,7 @@ static CURLcode file_upload(struct connectdata *conn)
     int readcount;
     res = Curl_fillreadbuffer(conn, BUFSIZE, &readcount);
     if(res)
-      return res;
+      break;
 
     nread = (size_t)readcount;
 
@@ -383,8 +386,7 @@ CURLcode Curl_file(struct connectdata *conn)
   if(Curl_pgrsUpdate(conn))
     res = CURLE_ABORTED_BY_CALLBACK;
 
-  close(fd);
-
   return res;
 }
+
 #endif