Reviewed-by: Jaben Carsey <jaben.car...@intel.com> And pushed. > -----Original Message----- > From: Shah, Tapan [mailto:tapands...@hpe.com] > Sent: Thursday, October 06, 2016 3:04 PM > To: Vladimir Olovyannikov <vladimir.olovyanni...@broadcom.com>; edk2- > de...@lists.01.org; Carsey, Jaben <jaben.car...@intel.com> > Subject: RE: [PATCH] ShellPkg: Fix erroneous Status returned by > ShellOpenFileByName() > Importance: High > > Reviewed-by: Tapan Shah <tapands...@hpe.com> > > > -----Original Message----- > From: Vladimir Olovyannikov [mailto:vladimir.olovyanni...@broadcom.com] > Sent: Thursday, October 06, 2016 5:02 PM > To: edk2-devel@lists.01.org; Shah, Tapan <tapands...@hpe.com>; > jaben.car...@intel.com > Cc: Vladimir Olovyannikov <vladimir.olovyanni...@broadcom.com> > Subject: [PATCH] ShellPkg: Fix erroneous Status returned by > ShellOpenFileByName() > > In ShellOpenFileByName() the file is opened using > gEfiShellProtocol->OpenFileByName(). > It is supposed that if this call returns an EFI_ERROR, the function should > return that error immediately. However, this return was missing, and if > UnicodeCollationProtocol has not been located by this time, the Status gets > overwritten with LocateProtocol() call result, which eventually erroneously > returns EFI_SUCCESS to the Shell.c, and this leads to attempt to execute a > non-existent startup script, which fails, and which in turn leads to Shell > being > unloaded with "Invalid parameter" > error. This patch fixes the bug. > > Cc: Tapan Shah <tapands...@hpe.com> > Cc: Jaben Carsey <jaben.car...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Vladimir Olovyannikov > <vladimir.olovyanni...@broadcom.com> > --- > ShellPkg/Library/UefiShellLib/UefiShellLib.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.c > b/ShellPkg/Library/UefiShellLib/UefiShellLib.c > index 53f54e1746d4..8db18b3b210f 100644 > --- a/ShellPkg/Library/UefiShellLib/UefiShellLib.c > +++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.c > @@ -723,6 +723,9 @@ ShellOpenFileByName( > Status = gEfiShellProtocol->OpenFileByName(FileName, > FileHandle, > OpenMode); > + if (EFI_ERROR(Status)) { > + return Status; > + } > > if (mUnicodeCollationProtocol == NULL) { > Status = gBS->LocateProtocol (&gEfiUnicodeCollation2ProtocolGuid, > NULL, (VOID**)&mUnicodeCollationProtocol); > -- > 1.9.1 >
_______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel