Laszlo,
Thanks for fixing such a big bug.

I am curious how you detect such buggy code? By code review?

Regards,
Ray

>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo 
>Ersek
>Sent: Tuesday, June 28, 2016 9:26 PM
>To: edk2-devel-01 <edk2-de...@ml01.01.org>
>Cc: Carsey, Jaben <jaben.car...@intel.com>; Qiu, Shumin <shumin....@intel.com>
>Subject: [edk2] [PATCH 4/6] ShellPkg: don't call functions with side effects 
>in ASSERT_EFI_ERROR()
>
>When ASSERT_EFI_ERROR() is compiled out, dependent on build flags, only
>the status checking should be removed; the function calls should stay.
>
>Cc: Jaben Carsey <jaben.car...@intel.com>
>Cc: Shumin Qiu <shumin....@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.0
>Signed-off-by: Laszlo Ersek <ler...@redhat.com>
>---
>
>Notes:
>    build tested
>
> ShellPkg/Library/UefiShellLevel1CommandsLib/If.c | 10 ++++++++--
> ShellPkg/Library/UefiShellLib/UefiShellLib.c     |  5 ++++-
> 2 files changed, 12 insertions(+), 3 deletions(-)
>
>diff --git a/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c 
>b/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
>index 7abfd8944b92..dc96bffde7d3 100644
>--- a/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
>+++ b/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
>@@ -991,8 +991,11 @@ ShellCommandRunElse (
>   IN EFI_SYSTEM_TABLE  *SystemTable
>   )
> {
>+  EFI_STATUS  Status;
>   SCRIPT_FILE *CurrentScriptFile;
>-  ASSERT_EFI_ERROR(CommandInit());
>+
>+  Status = CommandInit ();
>+  ASSERT_EFI_ERROR (Status);
>
>   if (gEfiShellParametersProtocol->Argc > 1) {
>     ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), 
> gShellLevel1HiiHandle, L"if");
>@@ -1066,8 +1069,11 @@ ShellCommandRunEndIf (
>   IN EFI_SYSTEM_TABLE  *SystemTable
>   )
> {
>+  EFI_STATUS  Status;
>   SCRIPT_FILE *CurrentScriptFile;
>-  ASSERT_EFI_ERROR(CommandInit());
>+
>+  Status = CommandInit ();
>+  ASSERT_EFI_ERROR (Status);
>
>   if (gEfiShellParametersProtocol->Argc > 1) {
>     ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), 
> gShellLevel1HiiHandle, L"if");
>diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.c 
>b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
>index cf89a4ac87ed..35a1a7169c8b 100644
>--- a/ShellPkg/Library/UefiShellLib/UefiShellLib.c
>+++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
>@@ -373,6 +373,8 @@ EFIAPI
> ShellInitialize (
>   )
> {
>+  EFI_STATUS Status;
>+
>   //
>   // if auto initialize is not false then skip
>   //
>@@ -383,7 +385,8 @@ ShellInitialize (
>   //
>   // deinit the current stuff
>   //
>-  ASSERT_EFI_ERROR(ShellLibDestructor(gImageHandle, gST));
>+  Status = ShellLibDestructor (gImageHandle, gST);
>+  ASSERT_EFI_ERROR (Status);
>
>   //
>   // init the new stuff
>--
>1.8.3.1
>
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to