OOo2.0beta2 installer crashes wine-20050830 in MultiByteToWideChar in msi_process_pending_messages

Mike McCormack mike at codeweavers.com
Mon Sep 12 02:02:37 CDT 2005


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_Win32Intel_install.zip 

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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: msi-oo-crash.diff
Type: text/x-patch
Size: 579 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20050912/2f596e27/msi-oo-crash-0001.diff


More information about the wine-devel mailing list