[Bug 19666] Multiple applications start wrong executable if whitespace present in name ('ShellExecute' doesn't quote executable name)(FoxitReader 3.0, GTA2 Manager)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Jul 16 15:26:55 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=19666

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Fixed by SHA1|                            |943ead502295793f608ad65eb0c
                   |                            |a144ba67546ce
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #18 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

this is fixed by commit
https://source.winehq.org/git/wine.git/commitdiff/943ead502295793f608ad65eb0ca144ba67546ce

Thanks Piotr

Although of non-serious consequence, the code should be further revised to
avoid garbage being present after the quote (no parameters).

--- snip ---
...
0009:Call KERNEL32.CreateProcessW(00000000,0032ded0
L"\"C:\\users\\focht\\Temp\\fox244d.tmp\\Foxit Reader
Setup.exe\"\e4a02\fab3\7bcb",00000000,00000000,00000000,00000410,00000000,00000000,0032d9a0,0032d990)
ret=7e83f8c2
0009:trace:process:create_process_impl app (null) cmdline
L"\"C:\\users\\focht\\Temp\\fox244d.tmp\\Foxit Reader
Setup.exe\"\e4a02\fab3\7bcb" 
...
--- snip ---

--- snip ---
$ Wine-dbg>info locals
0x7e8440e4 SHELL_execute+0xcf5: (0033f228)
    LPSHELLEXECUTEINFOW sei=0x33f268 (parameter [EBP+8])
    SHELL_ExecuteW32 execfunc=0x7e83f6c3 (parameter [EBP+12])
...
    WCHAR* wszApplicationName="C:\users\focht\Temp\fox7001.tmp\Foxit Reader
Setup.exe" (local [EBP-28])
    WCHAR* wszParameters="" (local [EBP-32])
    WCHAR* wszDir="" (local [EBP-36])
    WCHAR* wcmd="?3" (local [EBP-40])
    DWORD dwApplicationNameLen=0x38 (local [EBP-44])
    DWORD parametersLen=0x400 (local [EBP-48])
    DWORD dirLen=0x104 (local [EBP-64])
    DWORD wcmdLen=0x400 (local [EBP-52])
    DWORD len=0x39 (local [EBP-56])
    SHELLEXECUTEINFOW sei_tmp={cbSize=0x3c, fMask=0x40, hwnd=(nil),
lpVerb=0x0(nil), lpFile="C:\users\focht\Temp\fox7001.tmp\Foxit Reader
Setup.exe", lpParameters="", lpDirectory="", nShow=0x5, hInstApp=(nil),
lpIDList=0x0(nil), lpClass=0x0(nil), hkeyClass=(nil), dwHotKey=0,
={hIcon=0x0(nil), hMonitor=0x0(nil)}, hProcess=0x0(nil)} (local [EBP-4964])
...

Wine-dbg>n
1773        len = lstrlenW(wszApplicationName);
Wine-dbg>n
1774        memcpy(wcmd+1, wszApplicationName, len * sizeof(WCHAR));
Wine-dbg>n
1775        len++;
Wine-dbg>n
1776        wcmd[len++] = '\"';
Wine-dbg>p wcmd
""C:\users\focht\Temp\fox7001.tmp\Foxit Reader Setup.exe??3????"
Wine-dbg>n     
1777        if (sei_tmp.lpParameters[0]) {
Wine-dbg>p wcmd
""C:\users\focht\Temp\fox7001.tmp\Foxit Reader Setup.exe"?3????"
Wine-dbg>n
1782        retval = execfunc(wcmd, NULL, FALSE, &sei_tmp, sei);

--- snip ---

https://source.winehq.org/git/wine.git/blob/943ead502295793f608ad65eb0ca144ba67546ce:/dlls/shell32/shlexec.c#l1773

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list