https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2d4c0b87b1eccecbdd220e...
commit 2d4c0b87b1eccecbdd220ef9dea6512bbeb2fcd8 Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Tue Dec 10 17:26:00 2024 +0200 Commit: Timo Kreuzer timo.kreuzer@reactos.org CommitDate: Sun Dec 22 10:19:01 2024 +0200
[WIN32K:NTUSER] Check for NULL desktop window in co_IntProcessMouseMessage --- win32ss/user/ntuser/msgqueue.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/win32ss/user/ntuser/msgqueue.c b/win32ss/user/ntuser/msgqueue.c index 3a8b60704ff..13a3a106d7d 100644 --- a/win32ss/user/ntuser/msgqueue.c +++ b/win32ss/user/ntuser/msgqueue.c @@ -1487,6 +1487,12 @@ BOOL co_IntProcessMouseMessage(MSG* msg, BOOL* RemoveMessages, BOOL* NotForUs, L
pti = PsGetCurrentThreadWin32Thread(); pwndDesktop = UserGetDesktopWindow(); + if (pwndDesktop == NULL) + { + ERR("No desktop window!\n"); + return FALSE; + } + MessageQueue = pti->MessageQueue; CurInfo = IntGetSysCursorInfo(); pwndMsg = ValidateHwndNoErr(msg->hwnd); @@ -2001,7 +2007,7 @@ co_MsqPeekHardwareMessage(IN PTHREADINFO pti,
UpdateKeyStateFromMsg(MessageQueue, &msg); AcceptMessage = co_IntProcessHardwareMessage(&msg, &Remove, &NotForUs, ExtraInfo, MsgFilterLow, MsgFilterHigh); - + if (!NotForUs && (MsgFilterLow != 0 || MsgFilterHigh != 0)) { /* Don't return message if not in range */