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