From: Star Zeng Date: Mon, 23 Apr 2018 08:13:23 +0000 (+0800) Subject: MdeModulePkg NvmExpressDxe: return error code in error path X-Git-Tag: edk2-stable201903~1833 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=67d3e63c2c92dc9729e7f56b4fa8b4b47bfefe73;ds=sidebyside MdeModulePkg NvmExpressDxe: return error code in error path REF: https://bugzilla.tianocore.org/show_bug.cgi?id=937 In NvmeExpressPassthru.c near line 659: Prp = NvmeCreatePrpList ( PciIo, PhyAddr, EFI_SIZE_TO_PAGES(Offset + Bytes) - 1, &PrpListHost, &PrpListNo, &MapPrpList ); if (Prp == NULL) { goto EXIT; } Status is not set to an error code - Status is initialized to EFI_SUCCESS, or set by a PciIo->Map to EFI_SUCCESS above this code. This error path should set Status to an error code before goto EXIT. Change-Id: I8a5cdf981aa609534c205d3676395805ac60a003 Cc: Hao Wu Cc: Ruiyu Ni Cc: Michael Turner Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng Reviewed-by: Hao Wu --- diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c index 302cfdcd8d..cfad1587f2 100644 --- a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c +++ b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c @@ -656,6 +656,7 @@ NvmExpressPassThru ( PhyAddr = (Sq->Prp[0] + EFI_PAGE_SIZE) & ~(EFI_PAGE_SIZE - 1); Prp = NvmeCreatePrpList (PciIo, PhyAddr, EFI_SIZE_TO_PAGES(Offset + Bytes) - 1, &PrpListHost, &PrpListNo, &MapPrpList); if (Prp == NULL) { + Status = EFI_OUT_OF_RESOURCES; goto EXIT; }