mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/UefiBootManangerLib: Fix exception issue
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.huang@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Hao Wu <hao.a.wu@intel.com>
This commit is contained in:
parent
c606f47291
commit
6c27a4d337
|
@ -1069,6 +1069,9 @@ BmExpandMediaDevicePath (
|
||||||
//
|
//
|
||||||
Status = gBS->HandleProtocol (Handle, &gEfiBlockIoProtocolGuid, (VOID **) &BlockIo);
|
Status = gBS->HandleProtocol (Handle, &gEfiBlockIoProtocolGuid, (VOID **) &BlockIo);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
Buffer = AllocatePool (BlockIo->Media->BlockSize);
|
Buffer = AllocatePool (BlockIo->Media->BlockSize);
|
||||||
if (Buffer != NULL) {
|
if (Buffer != NULL) {
|
||||||
BlockIo->ReadBlocks (
|
BlockIo->ReadBlocks (
|
||||||
|
|
Loading…
Reference in New Issue