diff src/os_win32.c @ 6262:452e8b2a0ab3 v7.4.465

updated for version 7.4.465 Problem: Crash when expanding a very long string. Solution: Use wsncpy() instead of wcscpy(). (Ken Takata)
author Bram Moolenaar <bram@vim.org>
date Tue, 07 Oct 2014 10:38:40 +0200
parents 7816c24ff890
children e0f2ed0efb49
line wrap: on
line diff
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2775,9 +2775,10 @@ fname_case(
 	if (p != NULL)
 	{
 	    char_u	*q;
-	    WCHAR	buf[_MAX_PATH + 2];
-
-	    wcscpy(buf, p);
+	    WCHAR	buf[_MAX_PATH + 1];
+
+	    wcsncpy(buf, p, _MAX_PATH);
+	    buf[_MAX_PATH] = L'\0';
 	    vim_free(p);
 
 	    if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)