Le vendredi 02 avril 2010 10:40:07, Hans Leidekker a écrit :
MSI_RecordSetStringW( uirow, 2, mime->Extension->Extension );
I have a segfault on this line when executing GOG.com embedded Adobe Reader installer (as of duke_nukem_manhattan_project.exe, SHA1SUM 98e6056472368867d302f5dc00c6a317de96e713 at least):
wine: Unhandled page fault on read access to 0x00000008 at address 0x7ecf3750 (thread 0042), starting debugger... Unhandled exception: page fault on read access to 0x00000008 in 32-bit code (0x7ecf3750). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7ecf3750 ESP:0033f8e0 EBP:0033f938 EFLAGS:00010202( R- -- I - - - ) EAX:00000000 EBX:7ed72e80 ECX:00000000 EDX:00000000 ESI:005630d8 EDI:00563028 Stack dump: 0x0033f8e0: 00000002 7ed7f4f8 7ed5dfc6 7ed5ddeb 0x0033f8f0: 00000000 f76df7e1 7ed2e89b 7ed72e80 0x0033f900: 00131f00 0055eae0 7ed5ddeb 7ed5dfc6 0x0033f910: 7ed5dfa0 00563370 7ed5df60 00131f60 0x0033f920: 7ed7f4b8 7ed7f4b8 7ecf34fb 7ed72e80 0x0033f930: 00522dc0 00000044 0033f998 7ecda25e Backtrace: =>0 0x7ecf3750 ACTION_UnregisterMIMEInfo+0x260(package=0x131f00) [/home/vincent/git/wine/dlls/msi/classes.c:1516] in msi (0x0033f998) 1 0x7ecda25e ACTION_HandleStandardAction+0x1dd(package=<is not available>, action="UnregisterMIMEInfo", rc=0x33f9cc, force=0x0001) [/home/vincent/git/wine/dlls/msi/action.c:7089] in msi (0x0033f9e8)
Note: of-by-one line count, as I added a WARN to log mime->Extension value, which confirms the problem (3rd line):
warn:msi:ACTION_UnregisterMIMEInfo Unregistering MIME type L"application/pdf" warn:msi:ACTION_UnregisterMIMEInfo Failed to delete MIME key 2 warn:msi:ACTION_UnregisterMIMEInfo mime->Extension = (nil)
I believe the mime->InstallMe condition is too relaxed, as it does check mime-
Extension, but with || (reindented code, for wordwrap):
- mime->InstallMe = (mime->InstallMe ||
(mime->Class && mime->Class->Installed) ||
(mime->Extension && mime->Extension->Installed));
Regards,
On Tue, 2010-04-27 at 08:55 +0200, Vincent Pelletier wrote:
Backtrace: =>0 0x7ecf3750 ACTION_UnregisterMIMEInfo+0x260(package=0x131f00) [/home/vincent/git/wine/dlls/msi/classes.c:1516] in msi (0x0033f998) 1 0x7ecda25e ACTION_HandleStandardAction+0x1dd(package=<is not available>, action="UnregisterMIMEInfo", rc=0x33f9cc, force=0x0001) [/home/vincent/git/wine/dlls/msi/action.c:7089] in msi (0x0033f9e8)
Note: of-by-one line count, as I added a WARN to log mime->Extension value, which confirms the problem (3rd line):
warn:msi:ACTION_UnregisterMIMEInfo Unregistering MIME type L"application/pdf" warn:msi:ACTION_UnregisterMIMEInfo Failed to delete MIME key 2 warn:msi:ACTION_UnregisterMIMEInfo mime->Extension = (nil)
I believe the mime->InstallMe condition is too relaxed, as it does check mime-
Extension, but with || (reindented code, for wordwrap):
- mime->InstallMe = (mime->InstallMe ||
(mime->Class && mime->Class->Installed) ||
(mime->Extension && mime->Extension->Installed));
Well, the Extension_ column of the MIME table is not nullable, so mime->Extension should not be null here. Can you send me the msi file?