Thanks, Ming. On Tue, Mar 19, 2019 at 08:59:13PM +0800, Ming Huang wrote: > The system environment: virtual-CDROM(USB interface) via BMC, insert a > iso file to CDROM, like ubuntu-18.04.1-server-arm64.iso, change CDROM > to first boot option. > With release version bios, disconnecting CDROM when boot to > "1 seconds left, Press Esc or F2 to enter Setup" > then system will get a exception. > > The root cause is the EFI_BLOCK_IO_PROTOCOL for UsbMass will be uninstalled > in this situation after print some transfer error. The status will be > invalid parameter. This line will get a exception for BlockIo not point > to right address: > AllocatePool (BlockIo->Media->BlockSize) > So, here need to judge the status after ASSERT_EFI_ERROR. > > The Bugzilla tracker for this: > https://bugzilla.tianocore.org/show_bug.cgi?id=1631 > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ming Huang <ming.hu...@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindh...@linaro.org> > --- > MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c > b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c > index 4ce83ce22d61..0535cd7335b4 100644 > --- a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c > +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c > @@ -1069,6 +1069,9 @@ BmExpandMediaDevicePath ( > // > Status = gBS->HandleProtocol (Handle, &gEfiBlockIoProtocolGuid, (VOID **) > &BlockIo); > ASSERT_EFI_ERROR (Status); > + if (EFI_ERROR (Status)) { > + return NULL; > + } > Buffer = AllocatePool (BlockIo->Media->BlockSize); > if (Buffer != NULL) { > BlockIo->ReadBlocks ( > -- > 2.9.5 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel