Fix possible NULL pointer dereferences. Spotted by Amine Khaldi.

svn path=/trunk/; revision=49309
This commit is contained in:
Timo Kreuzer
2010-10-27 17:08:40 +00:00
parent 7dbcf100d3
commit 72f80d0c80
2 changed files with 16 additions and 5 deletions
@@ -941,6 +941,12 @@ W32kKeyProcessMessage(LPMSG Msg,
VscVkTable = KeyboardLayout->pVSCtoVK_E1;
}
if (!VscVkTable)
{
DPRINT1("somethings wrong, Prefix=0x%x", Prefix);
return;
}
RawVk = 0xff;
while (VscVkTable->Vsc)
{
@@ -2492,18 +2492,23 @@ NtUserMessageCall(
UserEnterExclusive();
/* Validate input */
if (hWnd && (hWnd != INVALID_HANDLE_VALUE) && !(Window = UserGetWindowObject(hWnd)))
if (hWnd && (hWnd != INVALID_HANDLE_VALUE))
{
UserLeave();
return FALSE;
Window = UserGetWindowObject(hWnd);
if (!Window)
{
UserLeave();
return FALSE;
}
}
switch(dwType)
{
case FNID_DEFWINDOWPROC:
UserRefObjectCo(Window, &Ref);
if (Window) UserRefObjectCo(Window, &Ref);
lResult = IntDefWindowProc(Window, Msg, wParam, lParam, Ansi);
Ret = TRUE;
UserDerefObjectCo(Window);
if (Window) UserDerefObjectCo(Window);
break;
case FNID_SENDNOTIFYMESSAGE:
Ret = UserSendNotifyMessage(hWnd, Msg, wParam, lParam);