[PATCH] hhctrl: add check for no filename
Wolfram Sang
wolfram at the-dreams.de
Wed Sep 8 09:23:47 CDT 2010
To prevent crashes or endless loops. Tested cases were:
~$ wine hh.exe
~$ wine hh.exe ""
~$ wine hh.exe -mapid 1
~$ wine hh.exe -mapid 1 ""
Minimal fix for bug 19070. Command line handling probably needs a rewrite
somewhen.
Signed-off-by: Wolfram Sang <wolfram at the-dreams.de>
---
dlls/hhctrl.ocx/hhctrl.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/dlls/hhctrl.ocx/hhctrl.c b/dlls/hhctrl.ocx/hhctrl.c
index 9ab66de..2101e05 100644
--- a/dlls/hhctrl.ocx/hhctrl.c
+++ b/dlls/hhctrl.ocx/hhctrl.c
@@ -295,6 +295,9 @@ int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
ptr += strlen("mapid")+1;
space = strchr(ptr, ' ');
+ /* command line ends without number */
+ if (!space)
+ return 0;
memcpy(idtxt, ptr, space-ptr);
idtxt[space-ptr] = '\0';
mapid = atoi(idtxt);
@@ -315,6 +318,11 @@ int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
len = endq - szCmdLine;
else
len = strlen(szCmdLine);
+
+ /* no filename given */
+ if (!len)
+ return 0;
+
buflen = MultiByteToWideChar(CP_ACP, 0, szCmdLine, len, NULL, 0) + 1;
filename = heap_alloc(buflen * sizeof(WCHAR));
MultiByteToWideChar(CP_ACP, 0, szCmdLine, len, filename, buflen);
--
1.7.1
More information about the wine-patches
mailing list