Word2K crash (window management, remote)

Andreas Mohr andi at rhlx01.fht-esslingen.de
Sun Jun 9 05:41:58 CDT 2002

Hi all,

crash for Word2K, current CVS, Insert->Object...->Microsoft WordArt 2.0:

153           if (!(parentWnd->dwStyle & WS_CLIPCHILDREN) && parentWnd->hrgnUpdate)
=>0 0x405ebaae (WIN_HaveToDelayNCPAINT+0x3e(hwnd=0x1004b, uncFlags=0x0) [painting.c:153] in user32.dll.so) (ebp=40566cb4)
  1 0x405ec571 (RDW_Paint+0x81(wndPtr=0x403980a0, hrgn=0x0, flags=0x50, ex=0x0) [painting.c:606] in user32.dll.so) (ebp=40566ce0
  2 0x405ecae5 (RedrawWindow+0x3b1(hwnd=0x1004b, rectUpdate=0x0, hrgnUpdate=0x0, flags=0x50) [painting.c:801] in user32.dll.so) (ebp=40566d4c)
  3 0x40614ba9 (PeekMessageW+0xfd(msg_out=0x447030, hwnd=0x0, first=0x0, last=0x0, flags=0x0) [message.c:2103] in user32.dll.so)
  4 0x40614c1b (PeekMessageA+0x27(msg=0x447030, hwnd=0x0, first=0x0, last=0x0, flags=0x0) [message.c:2126] in user32.dll.so) (ebp=40566dbc)
  5 0x0040ce4f (Wrdart32.exe..text+0xbe4f in C:\Program Files\Common Files\Microsoft Shared\WordArt\Wrdart32.exe) (ebp=00447030)
  6 0x00000532 (ebp=00020040)

inf loc:
hwnd == 0x1004b
uncFlags == 0
parentWnd == 0

The parent window seems to be a valid window handle, but the parent wnd *ptr*
becomes NULL -> crash.
Sounds like some code nullifies the valid parent window handle in between.
Of course I suppose that window locking was supposed to take care of this.
Seems like this isn't exactly the case here ;-)

Any ideas ?

Hmm, wait, in a trace I just found:
trace:win:RedrawWindow 10048 (16a6) NULL 0,0-0,0 0000 flags=0050
trace:win:OffsetRect <- 0,0-78,13
trace:win:RDW_UpdateRgns        hwnd 10048 [16a6] -> hrgn [0000], flags [0050]
trace:win:RDW_Paint     hwnd 10048 [16a6] -> hrgn [0000], flags [0050]
err:win:WIN_FindWndPtr window 10022 belongs to other process
093bda98:Call kernel32.UnhandledExceptionFilter(40454900) ret=0043854a
wine: Unhandled exception, starting debugger...

So it seems like the parent window is in another process and thus
WIN_FindWndPtr fails to return the handle and returns NULL.
Should we handle the possibility of a foreign parent window handle
by not doing anything in case of a NULL parent wndPtr in
WIN_HaveToDelayNCPaint() ?

Thanks !

Andreas Mohr                        Stauferstr. 6, D-71272 Renningen, Germany
Tel. +49 7159 800604                http://mohr.de.tt

More information about the wine-devel mailing list