[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