From 269c78802deae6e16bd91965f7ee421e044e9bca Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 31 Oct 2017 12:02:29 +0100 Subject: [PATCH] Fixed #4199: ConvertFindDataAToW string length --- winpr/libwinpr/file/generic.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/winpr/libwinpr/file/generic.c b/winpr/libwinpr/file/generic.c index 68e4c7f..32b6cfe 100644 --- a/winpr/libwinpr/file/generic.c +++ b/winpr/libwinpr/file/generic.c @@ -882,7 +882,7 @@ static BOOL ConvertFindDataAToW(LPWIN32_FIND_DATAA lpFindFileDataA, lpFindFileDataW->dwReserved0 = lpFindFileDataA->dwReserved0; lpFindFileDataW->dwReserved1 = lpFindFileDataA->dwReserved1; unicodeFileName = NULL; - length = ConvertToUnicode(CP_UTF8, 0, lpFindFileDataA->cFileName, -1, &unicodeFileName, 0) * 2; + length = ConvertToUnicode(CP_UTF8, 0, lpFindFileDataA->cFileName, -1, &unicodeFileName, 0); if (length == 0) return FALSE; @@ -890,10 +890,10 @@ static BOOL ConvertFindDataAToW(LPWIN32_FIND_DATAA lpFindFileDataA, if (length > MAX_PATH) length = MAX_PATH; - CopyMemory(lpFindFileDataW->cFileName, unicodeFileName, length); + CopyMemory(lpFindFileDataW->cFileName, unicodeFileName, length * sizeof(WCHAR)); free(unicodeFileName); length = ConvertToUnicode(CP_UTF8, 0, lpFindFileDataA->cAlternateFileName, - -1, &unicodeFileName, 0) * 2; + -1, &unicodeFileName, 0); if (length == 0) return TRUE; @@ -901,7 +901,7 @@ static BOOL ConvertFindDataAToW(LPWIN32_FIND_DATAA lpFindFileDataA, if (length > 14) length = 14; - CopyMemory(lpFindFileDataW->cAlternateFileName, unicodeFileName, length); + CopyMemory(lpFindFileDataW->cAlternateFileName, unicodeFileName, length * sizeof(WCHAR)); free(unicodeFileName); return TRUE; } -- 2.7.4