]> git.proxmox.com Git - mirror_edk2.git/commitdiff
add parameter check logic to clean up Klocwork warning.
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 2 Feb 2009 05:50:45 +0000 (05:50 +0000)
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 2 Feb 2009 05:50:45 +0000 (05:50 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7390 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c

index 26f13dbfd02d1561c9e31ccd5e57c77b5f9cb711..568720d3ef2ab4f7f22f225423e4d4f3212db00b 100644 (file)
@@ -633,6 +633,7 @@ Uhci2ControlTransfer (
   UINT8                   *DataPhy;\r
   VOID                    *DataMap;\r
   BOOLEAN                 IsSlowDevice;\r
+  UINTN                   TransferDataLength;\r
 \r
   Uhc         = UHC_FROM_USB2_HC_PROTO (This);\r
   TDs         = NULL;\r
@@ -660,10 +661,16 @@ Uhci2ControlTransfer (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if ((TransferDirection != EfiUsbNoData) && (DataLength == NULL)) {\r
+  if ((TransferDirection != EfiUsbNoData) && (Data == NULL || DataLength == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  if (TransferDirection == EfiUsbNoData) {\r
+    TransferDataLength = 0;\r
+  } else {\r
+    TransferDataLength = *DataLength;\r
+  }\r
+\r
   *TransferResult = EFI_USB_ERR_SYSTEM;\r
   Status          = EFI_DEVICE_ERROR;\r
 \r
@@ -702,7 +709,7 @@ Uhci2ControlTransfer (
           PktId,\r
           RequestPhy,\r
           DataPhy,\r
-          *DataLength,\r
+          TransferDataLength,\r
           (UINT8) MaximumPacketLength,\r
           IsSlowDevice\r
           );\r