http://bugs.winehq.org/show_bug.cgi?id=29997
Justin Chevrier jchevrier@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jchevrier@gmail.com
--- Comment #11 from Justin Chevrier jchevrier@gmail.com 2012-04-23 21:08:54 CDT --- I believe I have made some headway on this issue. I run into the same crash as the original reporter. Doing a '+relay,+seh' I get the following:
--- snip --- 0032:Ret msi.MsiGetFileSignatureInformationW() retval=800b0100 ret=0047bd53 0032:Call KERNEL32.FormatMessageW(00001300,00000000,800b0100,00000400,0033f0b8,00000000,00000000) ret=0047cabe 0032:Ret KERNEL32.FormatMessageW() retval=00000000 ret=0047cabe trace:seh:raise_exception code=c0000005 flags=0 addr=0x48a113 ip=0048a113 tid=0032 trace:seh:raise_exception info[0]=00000000 trace:seh:raise_exception info[1]=00000000 trace:seh:raise_exception eax=00000000 ebx=0033f1a4 ecx=0033f120 edx=00000000 esi=0033f120 edi=0033f120 trace:seh:raise_exception ebp=0033f07c esp=0033f07c cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010246 --- snip ---
It looks like the installer is calling FormatMessageW with a message ID of: 0x800b0100 (TRUST_E_NOSIGNATURE) and expecting a string to be returned from a resource contained in kernel32. As there is no kernel32 resource for 0x800b0100 FormatMessageW fails and returns a zero. I guess the installer doesn't handle this situation. Anyway, I have attached a patch that adds this resource in, and modifies the wmc tool to accept a messageid larger than 0xffff. No idea if there are consequences for changing the maximum allowed size, or if there is a more correct way to go about this.
With the patch applied I get past the crash and then the installer trips on: --- snip --- err:msi:ITERATE_Actions Execution halted, action L"AppSearch" returned 1615 --- snip ---