mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 21:44:31 +00:00
[WIN32K:NTUSER] Do not pass NULL keyboard layout to IntToUnicodeEx
There's an ASSERT on that
This commit is contained in:
parent
8d665f8959
commit
813d9cd2cc
|
@ -1341,6 +1341,7 @@ NtUserToUnicodeEx(
|
|||
PWCHAR pwszBuff = NULL;
|
||||
INT i, iRet = 0;
|
||||
PKL pKl = NULL;
|
||||
NTSTATUS Status;
|
||||
|
||||
TRACE("Enter NtUserSetKeyboardState\n");
|
||||
|
||||
|
@ -1390,17 +1391,35 @@ NtUserToUnicodeEx(
|
|||
pKl = pti->KeyboardLayout;
|
||||
}
|
||||
|
||||
if (pKl)
|
||||
{
|
||||
iRet = IntToUnicodeEx(wVirtKey,
|
||||
wScanCode,
|
||||
afKeyState,
|
||||
pwszBuff,
|
||||
cchBuff,
|
||||
wFlags,
|
||||
pKl ? pKl->spkf->pKbdTbl : NULL);
|
||||
pKl->spkf->pKbdTbl);
|
||||
|
||||
if (iRet)
|
||||
{
|
||||
Status = MmCopyToCaller(pwszBuffUnsafe, pwszBuff, cchBuff * sizeof(WCHAR));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR("No keyboard layout ?!\n");
|
||||
Status = STATUS_INVALID_HANDLE;
|
||||
}
|
||||
|
||||
MmCopyToCaller(pwszBuffUnsafe, pwszBuff, cchBuff * sizeof(WCHAR));
|
||||
ExFreePoolWithTag(pwszBuff, TAG_STRING);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
iRet = 0;
|
||||
SetLastNtError(Status);
|
||||
}
|
||||
|
||||
UserLeave();
|
||||
TRACE("Leave NtUserSetKeyboardState, ret=%i\n", iRet);
|
||||
return iRet;
|
||||
|
|
Loading…
Reference in a new issue