Hugh McMaster : wineconsole: Do not truncate argument strings larger than 256 bytes.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Apr 14 08:31:57 CDT 2015
Module: wine
Branch: master
Commit: 0516d969ebffa93f1317a9dbf6e4c1a1af457a59
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0516d969ebffa93f1317a9dbf6e4c1a1af457a59
Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date: Wed Apr 8 16:08:08 2015 +1000
wineconsole: Do not truncate argument strings larger than 256 bytes.
---
programs/wineconsole/wineconsole.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c
index 3c2faf5..ed5f816 100644
--- a/programs/wineconsole/wineconsole.c
+++ b/programs/wineconsole/wineconsole.c
@@ -830,13 +830,24 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, INT nCmdSh
break;
case from_process_name:
{
- WCHAR buffer[256];
+ int len;
+ WCHAR *buffer;
- MultiByteToWideChar(CP_ACP, 0, wci.ptr, -1, buffer, sizeof(buffer) / sizeof(buffer[0]));
+ len = MultiByteToWideChar(CP_ACP, 0, wci.ptr, -1, NULL, 0);
+
+ buffer = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!buffer)
+ return 0;
+
+ MultiByteToWideChar(CP_ACP, 0, wci.ptr, -1, buffer, len);
if (!(data = WINECON_Init(hInst, GetCurrentProcessId(), buffer, wci.backend, nCmdShow)))
+ {
+ HeapFree(GetProcessHeap(), 0, buffer);
return 0;
+ }
ret = WINECON_Spawn(data, buffer);
+ HeapFree(GetProcessHeap(), 0, buffer);
if (!ret)
{
WINECON_Delete(data);
More information about the wine-cvs
mailing list