Reviewed-by: Michael Kinney <michael.d.kin...@intel.com>

> -----Original Message-----
> From: Zeng, Star
> Sent: Tuesday, November 24, 2015 5:34 PM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming 
> <liming....@intel.com>; Tian, Feng <feng.t...@intel.com>; Laszlo
> Ersek <ler...@redhat.com>
> Subject: [PATCH V4 01/13] MdeModulePkg: TerminalDxe: avoid checking 
> uninitialized variable
> 
> The SerialIo->GetControl() function is not required to set the
> Control output parameter on error. Make sure we apply the
> EFI_SERIAL_INPUT_BUFFER_EMPTY optimization in
> TerminalConInTimerHandler() only if the SerialIo->GetControl()
> function call set that bit in the Control variable.
> 
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <liming....@intel.com>
> Cc: Feng Tian <feng.t...@intel.com>
> Cc: Laszlo Ersek <ler...@redhat.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Suggested-by: Laszlo Ersek <ler...@redhat.com>
> Signed-off-by: Star Zeng <star.z...@intel.com>
> ---
>  MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> index c216ed9..3be877b 100644
> --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> @@ -2,7 +2,7 @@
>    Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol.
> 
>  (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> -Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
>  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
> @@ -562,10 +562,11 @@ TerminalConInTimerHandler (
>    }
>    //
>    // Check whether serial buffer is empty.
> +  // Skip the key transfer loop only if the SerialIo protocol instance
> +  // successfully reports EFI_SERIAL_INPUT_BUFFER_EMPTY.
>    //
>    Status = SerialIo->GetControl (SerialIo, &Control);
> -
> -  if ((Control & EFI_SERIAL_INPUT_BUFFER_EMPTY) == 0) {
> +  if (EFI_ERROR (Status) || ((Control & EFI_SERIAL_INPUT_BUFFER_EMPTY) == 
> 0)) {
>      //
>      // Fetch all the keys in the serial buffer,
>      // and insert the byte stream into RawFIFO.
> --
> 1.9.5.msysgit.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to