]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg NvmExpressDxe: Add NamespaceId validity check in PassThru
authorHao Wu <hao.a.wu@intel.com>
Tue, 30 Aug 2016 08:34:09 +0000 (16:34 +0800)
committerHao Wu <hao.a.wu@intel.com>
Tue, 6 Sep 2016 07:31:41 +0000 (15:31 +0800)
According to the UEFI spec, EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL.PassThru()
should return EFI_INVALID_PARAMETER if the input 'NamespaceId' is invalid
for the NVM Express controller. This commit adds check in PassThru() to
follow this rule.

Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c

index 2209ee624b54e5c47d324ceb51e7738a7754fdca..96e9d88e5267399f3ea37a1da70464cc02b0b8cc 100644 (file)
@@ -422,6 +422,14 @@ NvmExpressPassThru (
 \r
   Private     = NVME_CONTROLLER_PRIVATE_DATA_FROM_PASS_THRU (This);\r
 \r
+  //\r
+  // Check NamespaceId is valid or not.\r
+  //\r
+  if ((NamespaceId > Private->ControllerData->Nn) &&\r
+      (NamespaceId != (UINT32) -1)) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
   //\r
   // Check whether TransferLength exceeds the maximum data transfer size.\r
   //\r