[SHELL32]
authorPierre Schweitzer <pierre@reactos.org>
Sun, 19 Feb 2017 13:22:02 +0000 (13:22 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 19 Feb 2017 13:22:02 +0000 (13:22 +0000)
For the input string, WideCharToMultiByte takes a char count and not a buffer size.

CID 14010961401088

svn path=/trunk/; revision=73845

reactos/dll/win32/shell32/CShellLink.cpp

index f10cf92..e0051f6 100644 (file)
@@ -1074,13 +1074,17 @@ HRESULT STDMETHODCALLTYPE CShellLink::GetPath(LPSTR pszFile, INT cchMaxPath, WIN
         /* Copy the file data if a file path was returned */
         if (*pszFile)
         {
+            DWORD len;
+
             /* Copy the fixed part */
             CopyMemory(pfd, &wfd, FIELD_OFFSET(WIN32_FIND_DATAA, cFileName));
 
             /* Convert the file names to ANSI */
-            WideCharToMultiByte(CP_ACP, 0, wfd.cFileName, sizeof(wfd.cFileName),
+            len = lstrlenW(wfd.cFileName);
+            WideCharToMultiByte(CP_ACP, 0, wfd.cFileName, len + 1,
                                 pfd->cFileName, sizeof(pfd->cFileName), NULL, NULL);
-            WideCharToMultiByte(CP_ACP, 0, wfd.cAlternateFileName, sizeof(wfd.cAlternateFileName),
+            len = lstrlenW(wfd.cAlternateFileName);
+            WideCharToMultiByte(CP_ACP, 0, wfd.cAlternateFileName, len + 1,
                                 pfd->cAlternateFileName, sizeof(pfd->cAlternateFileName), NULL, NULL);
         }
     }