From 71be565cf48f17b21eebbcde1ddba27c6e06d4c5 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 21 Apr 2010 23:20:18 +0200 Subject: [PATCH] curl: -O crash on windows The -O option caused curl to crash on windows and DOS due to the tool writing out of boundary memory. --- CHANGES | 4 ++++ RELEASE-NOTES | 1 + src/main.c | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 64e8ad64d..0184671ee 100644 --- 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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index d180686d8..3c6b52109 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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: diff --git a/src/main.c b/src/main.c index b7e438b1e..2dd6dc873 100644 --- a/src/main.c +++ b/src/main.c @@ -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));