kernel32 & winex11: WaitForMultipleObjectsEx should ignore NULL handles
Adam Strzelecki
ono at java.pl
Sat Mar 1 09:10:24 CST 2008
> In this case, MSI should not be calling MsgWaitForMultipleObjects
> with an invalid handle and in fact that barring memory corruption,
> this can't happen:
You're right, my patch was incorrect, I made bad assumption.
I'm still not sure why this X11DRV_MsgWaitForMultipleObjectsEx is
testing for "(count || timeout)", rather than "(count && timeout)" or
just "count" at:
> if (process_events( data->display, mask )) ret = count - 1;
> else if (count || timeout)
> {
> ret = WaitForMultipleObjectsEx( count, handles, flags &
> MWMO_WAITALL,
> timeout, flags &
> MWMO_ALERTABLE );
>>
I can see that msi_dialog_run_message_loop calls
"MsgWaitForMultipleObjects( 0, NULL, 0, INFINITE, QS_ALLINPUT );"
which implies that
"WaitForMultipleObjects( 0, NULL, 0, INFINITE, MWMO_ALERTABLE );" can
be called if precess_events returns FALSE.
I'm pretty sure I saw in gdb some calls with NULL handles to
WaitForMultipleObjects related to MSI.
Regards,
--
Adam Strzelecki |: nanoant.com :|
More information about the wine-devel
mailing list