http://bugs.winehq.org/show_bug.cgi?id=19644
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello Bruno,m
--- quote --- I can't update the game to 1.01 because the update installer crashes, I will try more later. --- quote ---
you see bug 5224
The stupid installer expects a double quoted command line. It calls GetCommandLineA(), skips the first character and copies up to 0x104 characters to a stack-based buffer. It then continues to search the stack-based buffer for the closing double-quote. By default the command line is unquoted if you are the first (parent) process.
The search just overruns stack top (increment), landing in unmapped area, causing the fault.
--- snip --- ... 0023:Call KERNEL32.GetCommandLineA() ret=00401fdf 0023:Ret KERNEL32.GetCommandLineA() retval=00130bf8 ret=00401fdf 0023:trace:seh:raise_exception code=c0000005 flags=0 addr=0x402001 ip=00402001 tid=0023 0023:trace:seh:raise_exception info[0]=00000000 0023:trace:seh:raise_exception info[1]=00340000 0023:trace:seh:raise_exception eax=000004b0 ebx=7b8bb000 ecx=0000005c edx=00000000 esi=0033fd70 edi=00000000 0023:trace:seh:raise_exception ebp=0033fe20 esp=0033fb30 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010297 0023:trace:seh:call_stack_handlers calling handler at 0x40bdc8 code=c0000005 flags=0 0023:Call KERNEL32.UnhandledExceptionFilter(0033f610) ret=0040b8e9 wine: Unhandled page fault on read access to 0x00340000 at address 0x402001 (thread 0023), starting debugger... 0023:trace:seh:start_debugger Starting debugger "winedbg --auto 34 80" 0023:Ret KERNEL32.UnhandledExceptionFilter() retval=00000000 ret=0040b8e9 0023:trace:seh:call_stack_handlers handler at 0x40bdc8 returned 1 0023:trace:seh:call_stack_handlers calling handler at 0x7bc9ebc3 code=c0000005 flags=0 0023:Call KERNEL32.UnhandledExceptionFilter(0033f604) ret=7bc9ebfd 0023:Ret KERNEL32.UnhandledExceptionFilter() retval=00000000 ret=7bc9ebfd 0023:trace:seh:call_stack_handlers handler at 0x7bc9ebc3 returned 1 Unhandled exception: page fault on read access to 0x00340000 in 32-bit code (0x00402001). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:00402001 ESP:0033fb30 EBP:0033fe20 EFLAGS:00010297( R- -- I S -A-P-C) EAX:000004b0 EBX:7b8bb000 ECX:0000005c EDX:00000000 ESI:0033fd70 EDI:00000000 ... 000c: sel=0067 base=00000000 limit=00000000 16-bit --x Backtrace: =>0 0x00402001 in gfupd101 (+0x2001) (0x0033fe20) --- snip ---
In Windows, apps always get a quoted command line when started by clicking the executable in shell/explorer (ShellExecuteEx).
Bug 5224 ought to be fixed but I quickly tested with Wine's 'explorer' and double click the executables still crashes it. Either someone didn't verify this properly or this is a regression.
To have the executable wrapped with quotes "workaround", use a helper batch file as follows:
--- snip --- $ echo "Gfupd101.exe" > foo.cmd $ wine cmd /c foo.cmd --- snip ---
Regards