Dan Kegel wrote:
Here's a log of wine-20050830 crashing while running the setup.exe in the directory created by unpacking http://openoffice.mirrors.pair.com/ftp/stable/2.0beta2/OOo_2.0beta2_Win32Int...
The attached patch (hack) should fix the problem. We load a dll in a thread (in an MSI custom action), and that dll does a SendMessageTimeout(HWND_BROADCAST, WM_WININICHANGE, .., &ptr, ...), then exits, and our thread unloads the dll.
user32.SendMessageTimeoutA(0000ffff,0000001a,0000002a,62840730,00000002,00000000,00000000) ret=6282b827
By the time our GUI receives the broadcast message, the pointer in the message is invalid, and the message marshalling code accesses it and crashes.
So we need to figure out whether we need to delay unloading of the dll until we have a chance to process all the messages or whether the message marshalling code needs to be fixed.
Mike
wine: Unhandled exception (thread 000b), starting debugger... WineDbg starting on pid 0xa Unhandled exception: page fault on read access to 0x62840730 in 32-bit code (0x7bbb0953).
<snip>
=>1 0x7bbb0953 MultiByteToWideChar+0x16f(page=0x0, flags=0x0, src=0x62840730, srclen=0xffffffff, dst=0x0, dstlen=0x0) [/home/dank/wine-20050830/dlls/kernel/locale.c:1527] in kernel32 (0x7b92f304) 2 0x7b58b3a8 WINPROC_MapMsg32ATo32W+0x270(hwnd=0x30024, msg=0x1a, pwparam=0x7b92f388, plparam=0x7b92f38c) [/home/dank/wine-20050830/dlls/user/winproc.c:668] in user32 (0x7b92f36c) 3 0x7b58f4e4 CallWindowProcA+0xa0(func=0x7b5e9226, hwnd=0x30024, msg=0x1a, wParam=0x2a, lParam=0x62840730) [/home/dank/wine-20050830/dlls/user/winproc.c:2952] in user32 (0x7b92f39c) 4 0x7b564d5c call_window_proc+0xd0(wparam=0x2a, lparam=0x62840730, unicode=0x0, same_thread=0x0) [/home/dank/wine-20050830/dlls/user/message.c:1520] in user32 (0x7b92f3fc) 5 0x7b56539b peek_message+0x26f(first=0x0, last=0xffffffff, flags=0x1) [/home/dank/wine-20050830/dlls/user/message.c:2053] in user32 (0x7b92f794) 6 0x7b5693de PeekMessageW(msg_out=0x7b92f7fc, hwnd=0x0, first=0x0, last=0x0, flags=0x1) [/home/dank/wine-20050830/dlls/user/message.c:2694] in user32 (0x7b92f7e0) 7 0x7b7f9812 msi_process_pending_messages+0x2a [/home/dank/wine-20050830/dlls/msi/dialog.c:1807] in msi (0x7b92f828)