[Bug 23270] GTA2 options menu item broken - CreateProcess runs wrong executable
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun May 8 06:21:25 CDT 2011
http://bugs.winehq.org/show_bug.cgi?id=23270
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
--- Comment #2 from Anastasius Focht <focht at gmx.net> 2011-05-08 06:21:24 CDT ---
Hello,
yes, CreateProcess() command line heuristics needs some overhaul to handle all
this brokenness.
Consider another braindamaged app (pando installer), which tries to run an exe
with a path containing whitespace without quoting:
--- snip ---
...
0022:Call KERNEL32.CreateProcessW(00000000,001a07d0 L"C:\\Program Files\\Pando
Networks\\Pando\\Pando.exe",00000000,00000000,00000001,08000400,00000000,00000000,0540e330,0540e380)
ret=007b1c53
0022:trace:process:create_process_impl app (null) cmdline L"C:\\Program
Files\\Pando Networks\\Pando\\Pando.exe"
0022:trace:process:find_exe_file looking for L"C:\\Program"
0022:trace:process:find_exe_file Trying native exe L"C:\\Program"
0022:warn:process:create_process_impl (L"C:\\Program",...): ignoring some flags
in 8000400
0022:trace:process:create_process_impl starting L"C:\\Program" as Unix binary
0022:Ret KERNEL32.CreateProcessW() retval=00000000 ret=007b1c53
...
0022:Call ntdll.wcslen(026d87f0 L"Error creating child process: Access
denied\r\n") ret=0071fcd2
...
--- snip ---
MSDN for reference: http://msdn.microsoft.com/en-us/library/ms682425.aspx
For "lpApplicationName" arg:
--- quote ---
The lpApplicationName parameter can be NULL. In that case, the module name must
be the first white space–delimited token in the lpCommandLine string. If you
are using a long file name that contains a space, use quoted strings to
indicate where the file name ends and the arguments begin; otherwise, the file
name is ambiguous. For example, consider the string "c:\program files\sub
dir\program name". This string can be interpreted in a number of ways. The
system tries to interpret the possibilities in the following order:
c:\program.exe files\sub dir\program name
c:\program files\sub.exe dir\program name
c:\program files\sub dir\program.exe name
c:\program files\sub dir\program name.exe
--- quote ---
For "lpCommandLine" arg:
--- quote ---
If lpApplicationName is NULL, the first white space–delimited token of the
command line specifies the module name. If you are using a long file name that
contains a space, use quoted strings to indicate where the file name ends and
the arguments begin (see the explanation for the lpApplicationName parameter).
--- quote ---
They probably apply similar heuristics for lpCommandLine to cope with
braindamaged code that doesn't quote executable path.
Download: http://www.pando.com/dl/download/PandoSetupNCI.exe
$ wine --version
wine-1.3.19-203-gf555c2d
$ sha1sum PandoSetupNCI.exe
d5cddcb7979f0423d1b8aa08d3b3c4b947381426 PandoSetupNCI.exe
Maybe the bug should be made more generic because there are various poorly
coded apps that suffer from this.
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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