[NTUSER] Don't crash when the current thread doesn't have a desktop

This commit is contained in:
Giannis Adamopoulos 2018-12-17 20:11:59 +02:00
parent b2a5f5dbb3
commit 298a46acbf

View file

@ -14,20 +14,17 @@ static
HWND FASTCALL HWND FASTCALL
co_IntFixCaret(PWND Window, RECTL *lprc, UINT flags) co_IntFixCaret(PWND Window, RECTL *lprc, UINT flags)
{ {
PDESKTOP Desktop;
PTHRDCARETINFO CaretInfo; PTHRDCARETINFO CaretInfo;
PTHREADINFO pti; PTHREADINFO pti;
PUSER_MESSAGE_QUEUE ActiveMessageQueue; PUSER_MESSAGE_QUEUE ThreadQueue;
HWND hWndCaret; HWND hWndCaret;
PWND WndCaret; PWND WndCaret;
ASSERT_REFS_CO(Window); ASSERT_REFS_CO(Window);
pti = PsGetCurrentThreadWin32Thread(); pti = PsGetCurrentThreadWin32Thread();
Desktop = pti->rpdesk; ThreadQueue = pti->MessageQueue;
ActiveMessageQueue = Desktop->ActiveMessageQueue; CaretInfo = &ThreadQueue->CaretInfo;
if (!ActiveMessageQueue) return 0;
CaretInfo = &ActiveMessageQueue->CaretInfo;
hWndCaret = CaretInfo->hWnd; hWndCaret = CaretInfo->hWnd;
WndCaret = ValidateHwndNoErr(hWndCaret); WndCaret = ValidateHwndNoErr(hWndCaret);