X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FBus%2FUsb%2FUsbKbDxe%2FKeyBoard.c;fp=MdeModulePkg%2FBus%2FUsb%2FUsbKbDxe%2FKeyBoard.c;h=fe6121985c4e3a5a9bc9a6c979244228518bb617;hb=d12c6a78aaa2d5bb841733f9c758821875d07dae;hp=000430ae78d3353e635d27b6cd350cbb1e39af39;hpb=2256f1f7578365c7d8acadb77a1e95373faed78b;p=mirror_edk2.git diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c index 000430ae78..fe6121985c 100644 --- a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c +++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c @@ -627,13 +627,18 @@ SetKeyboardLayoutEvent ( // KeyCode = EfiKeyToUsbKeyCodeConvertionTable [(UINT8) (TempKey.Key)]; TableEntry = GetKeyDescriptor (UsbKeyboardDevice, KeyCode); + if (TableEntry == NULL) { + ReleaseKeyboardLayoutResources (UsbKeyboardDevice); + FreePool (KeyboardLayout); + return; + } CopyMem (TableEntry, KeyDescriptor, sizeof (EFI_KEY_DESCRIPTOR)); // // For non-spacing key, create the list with a non-spacing key followed by physical keys. // if (TempKey.Modifier == EFI_NS_KEY_MODIFIER) { - UsbNsKey = AllocatePool (sizeof (USB_NS_KEY)); + UsbNsKey = AllocateZeroPool (sizeof (USB_NS_KEY)); ASSERT (UsbNsKey != NULL); //