diff --git a/EmulatorPkg/EmuGopDxe/GopInput.c b/EmulatorPkg/EmuGopDxe/GopInput.c index 1d40b1d7d6..97a5fbc1ad 100644 --- a/EmulatorPkg/EmuGopDxe/GopInput.c +++ b/EmulatorPkg/EmuGopDxe/GopInput.c @@ -1,6 +1,6 @@ /*++ @file -Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
Portions copyright (c) 2010 0 2011,Apple Inc. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -442,11 +442,20 @@ EmuGopSimpleTextInExSetState ( EFI_STATUS Status; EFI_TPL OldTpl; + if (KeyToggleState == NULL) { + return EFI_INVALID_PARAMETER; + } + Private = GOP_PRIVATE_DATA_FROM_TEXT_IN_EX_THIS (This); if (Private->EmuGraphicsWindow == NULL) { return EFI_NOT_READY; } + if (((Private->KeyState.KeyToggleState & EFI_TOGGLE_STATE_VALID) != EFI_TOGGLE_STATE_VALID) || + ((*KeyToggleState & EFI_TOGGLE_STATE_VALID) != EFI_TOGGLE_STATE_VALID)) { + return EFI_UNSUPPORTED; + } + // // Enter critical section //