From ebafede928b6402b90a1ac2bc5175e50f1a60884 Mon Sep 17 00:00:00 2001 From: Ruiyu Ni Date: Fri, 13 Apr 2018 12:13:52 +0800 Subject: [PATCH] MdeModulePkg/Terminal: Check status of OpenProtocol in BindingStart REF: https://bugzilla.tianocore.org/show_bug.cgi?id=917 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni Cc: Steven Shi Reviewed-by: Star Zeng --- MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c index 60de2d4d6d..66dd3ad550 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c @@ -2,7 +2,7 @@ Produces Simple Text Input Protocol, Simple Text Input Extended Protocol and Simple Text Output Protocol upon Serial IO Protocol. -Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -488,6 +488,9 @@ TerminalDriverBindingStart ( EFI_OPEN_PROTOCOL_BY_DRIVER ); ASSERT ((Status == EFI_SUCCESS) || (Status == EFI_ALREADY_STARTED)); + if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { + return Status; + } // // Open the Serial I/O Protocol BY_DRIVER. It might already be started. @@ -501,6 +504,9 @@ TerminalDriverBindingStart ( EFI_OPEN_PROTOCOL_BY_DRIVER ); ASSERT ((Status == EFI_SUCCESS) || (Status == EFI_ALREADY_STARTED)); + if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { + return Status; + } if (!IsHotPlugDevice (ParentDevicePath)) { //