curl: -O crash on windows
authorDaniel Stenberg <daniel@haxx.se>
Wed, 21 Apr 2010 21:20:18 +0000 (23:20 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 21 Apr 2010 21:20:18 +0000 (23:20 +0200)
The -O option caused curl to crash on windows and DOS due to the
tool writing out of boundary memory.

CHANGES
RELEASE-NOTES
src/main.c

diff --git a/CHANGES b/CHANGES
index 64e8ad6..0184671 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Daniel Stenberg (21 Apr 2010)
+- The -O option caused curl to crash on windows and DOS due to the tool
+  writing out of boundary memory.
+
 Yang Tse (20 Apr 2010)
 - Ruslan Gazizov detected that MSVC makefiles were using wsock32.lib instead
   of ws2_32.lib, this generated linking issues on MSVC IPv6 enabled builds
index d180686..3c6b521 100644 (file)
@@ -19,6 +19,7 @@ This release includes the following bugfixes:
  o GnuTLS: SSL handshake phase is non-blocking
  o -J/--remote-header-name strips CRLF
  o MSVC makefiles now use ws2_32.lib instead of wsock32.lib
+ o -O crash on windows
 
 This release includes the following known bugs:
 
index b7e438b..2dd6dc8 100644 (file)
@@ -5839,7 +5839,8 @@ rename_if_dos_device_name (char *file_name)
 static char *sanitize_dos_name(char *fn)
 {
   char tmpfn[PATH_MAX];
-  fn[PATH_MAX-1]=0; /* ensure fn is not too long by possibly truncating it */
+  if(strlen(fn) >= PATH_MAX)
+    fn[PATH_MAX-1]=0; /* truncate it */
   strcpy(tmpfn, msdosify(fn));
   free(fn);
   return strdup(rename_if_dos_device_name(tmpfn));