]> git.proxmox.com Git - mirror_edk2.git/commitdiff
add assert logic to avoid Klocwork fake report
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 12 Feb 2009 06:23:15 +0000 (06:23 +0000)
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 12 Feb 2009 06:23:15 +0000 (06:23 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7511 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c

index b2a70d13811bccfb39fa787ab1e812a424a589b4..d0def777bd79aad2174e21344b6ff5f98ba896dc 100644 (file)
@@ -111,6 +111,7 @@ UsbIoControlTransfer (
     // Clear TT buffer when CTRL/BULK split transaction failes\r
     // Clear the TRANSLATOR TT buffer, not parent's buffer\r
     //\r
+    ASSERT (Dev->Translator.TranslatorHubAddress < USB_MAX_DEVICES);\r
     if (Dev->Translator.TranslatorHubAddress != 0) {\r
       UsbHubCtrlClearTTBuffer (\r
         Dev->Bus->Devices[Dev->Translator.TranslatorHubAddress],\r
@@ -195,6 +196,7 @@ UsbIoControlTransfer (
     Status = UsbSelectSetting (UsbIf->IfDesc, (UINT8) Request->Value);\r
 \r
     if (!EFI_ERROR (Status)) {\r
+      ASSERT (UsbIf->IfDesc->ActiveIndex < USB_MAX_INTERFACE_SETTING);\r
       UsbIf->IfSetting = UsbIf->IfDesc->Settings[UsbIf->IfDesc->ActiveIndex];\r
     }\r
   }\r
@@ -282,6 +284,7 @@ UsbIoBulkTransfer (
     // Clear TT buffer when CTRL/BULK split transaction failes.\r
     // Clear the TRANSLATOR TT buffer, not parent's buffer\r
     //\r
+    ASSERT (Dev->Translator.TranslatorHubAddress < USB_MAX_DEVICES);\r
     if (Dev->Translator.TranslatorHubAddress != 0) {\r
       UsbHubCtrlClearTTBuffer (\r
         Dev->Bus->Devices[Dev->Translator.TranslatorHubAddress],\r
@@ -751,6 +754,7 @@ UsbIoGetStringDescriptor (
   Status = EFI_NOT_FOUND;\r
 \r
   for (Index = 0; Index < Dev->TotalLangId; Index++) {\r
+    ASSERT (Index < USB_MAX_LANG_ID);\r
     if (Dev->LangId[Index] == LangID) {\r
       break;\r
     }\r
index 4c2e5ffa6501af2e0079ced2a2f5ae35532b5a0b..0577167816e236953f7cb044b9d679f10b6180e3 100644 (file)
@@ -109,6 +109,7 @@ UsbCreateInterface (
   UsbIf->Signature  = USB_INTERFACE_SIGNATURE;\r
   UsbIf->Device     = Device;\r
   UsbIf->IfDesc     = IfDesc;\r
+  ASSERT (IfDesc->ActiveIndex < USB_MAX_INTERFACE_SETTING);\r
   UsbIf->IfSetting  = IfDesc->Settings[IfDesc->ActiveIndex];\r
 \r
   CopyMem (\r
@@ -279,7 +280,7 @@ UsbConnectDriver (
     //\r
     if (UsbBusIsWantedUsbIO (UsbIf->Device->Bus, UsbIf)) {\r
       OldTpl            = UsbGetCurrentTpl ();\r
-      DEBUG ((EFI_D_INFO, "UsbConnectDriver: TPL before connect is %d\n", (UINT32)OldTpl));\r
+      DEBUG ((EFI_D_INFO, "UsbConnectDriver: TPL before connect is %d, %p\n", (UINT32)OldTpl, UsbIf->Handle));\r
 \r
       gBS->RestoreTPL (TPL_CALLBACK);\r
 \r
@@ -325,6 +326,7 @@ UsbSelectSetting (
   Setting = NULL;\r
 \r
   for (Index = 0; Index < IfDesc->NumOfSetting; Index++) {\r
+    ASSERT (Index < USB_MAX_INTERFACE_SETTING);\r
     Setting = IfDesc->Settings[Index];\r
 \r
     if (Setting->Desc.AlternateSetting == Alternate) {\r
@@ -420,6 +422,7 @@ UsbSelectConfig (
       return EFI_OUT_OF_RESOURCES;\r
     }\r
 \r
+    ASSERT (Index < USB_MAX_INTERFACE);\r
     Device->Interfaces[Index] = UsbIf;\r
 \r
     //\r
@@ -452,6 +455,7 @@ UsbDisconnectDriver (
   )\r
 {\r
   EFI_TPL                 OldTpl;\r
+  EFI_STATUS              Status;\r
 \r
   //\r
   // Release the hub if it's a hub controller, otherwise\r
@@ -469,14 +473,14 @@ UsbDisconnectDriver (
     // or disconnect at CALLBACK.\r
     //\r
     OldTpl           = UsbGetCurrentTpl ();\r
-    DEBUG ((EFI_D_INFO, "UsbDisconnectDriver: old TPL is %d\n", (UINT32)OldTpl));\r
+    DEBUG ((EFI_D_INFO, "UsbDisconnectDriver: old TPL is %d, %p\n", (UINT32)OldTpl, UsbIf->Handle));\r
 \r
     gBS->RestoreTPL (TPL_CALLBACK);\r
 \r
-    gBS->DisconnectController (UsbIf->Handle, NULL, NULL);\r
+    Status = gBS->DisconnectController (UsbIf->Handle, NULL, NULL);\r
     UsbIf->IsManaged = FALSE;\r
 \r
-    DEBUG (( EFI_D_INFO, "UsbDisconnectDriver: TPL after disconnect is %d\n", (UINT32)UsbGetCurrentTpl()));\r
+    DEBUG (( EFI_D_INFO, "UsbDisconnectDriver: TPL after disconnect is %d, %d\n", (UINT32)UsbGetCurrentTpl(), Status));\r
     ASSERT (UsbGetCurrentTpl () == TPL_CALLBACK);\r
 \r
     gBS->RaiseTPL (OldTpl);\r
@@ -501,7 +505,8 @@ UsbRemoveConfig (
   //\r
   // Remove each interface of the device\r
   //\r
-  for (Index = 0; Index < Device->NumOfInterface; Index++) {\r
+  for (Index = 0; Index < Device->NumOfInterface; Index++) {    \r
+    ASSERT (Index < USB_MAX_INTERFACE);\r
     UsbIf = Device->Interfaces[Index];\r
 \r
     if (UsbIf == NULL) {\r
@@ -561,6 +566,7 @@ UsbRemoveDevice (
 \r
   DEBUG (( EFI_D_INFO, "UsbRemoveDevice: device %d removed\n", Device->Address));\r
 \r
+  ASSERT (Device->Address < USB_MAX_DEVICES);\r
   Bus->Devices[Device->Address] = NULL;\r
   UsbFreeDevice (Device);\r
 \r
@@ -900,7 +906,7 @@ UsbEnumeratePort (
   Child = UsbFindChild (HubIf, Port);\r
   \r
   if (Child != NULL) {\r
-    DEBUG (( EFI_D_INFO, "UsbEnumeratePort: device at port %d removed from system\n", Port));\r
+    DEBUG (( EFI_D_INFO, "UsbEnumeratePort: device at port %d removed from root hub %p\n", Port, HubIf));\r
     UsbRemoveDevice (Child);\r
   }\r
   \r
index 2d2bd2a154dd5671e689dc11e90318d27c453b1d..c59565fd1e4c69126243d0ca677ac263e58b43e7 100644 (file)
@@ -928,6 +928,7 @@ MatchUsbClass (
   }\r
 \r
   IfDesc       = UsbIf->IfDesc;\r
+  ASSERT (IfDesc->ActiveIndex < USB_MAX_INTERFACE_SETTING);\r
   ActIfDesc    = &(IfDesc->Settings[IfDesc->ActiveIndex]->Desc);\r
   DevDesc      = &(UsbIf->Device->DevDesc->Desc);\r
 \r
@@ -1008,6 +1009,7 @@ MatchUsbWwid (
   }\r
 \r
   IfDesc       = UsbIf->IfDesc;\r
+  ASSERT (IfDesc->ActiveIndex < USB_MAX_INTERFACE_SETTING);\r
   ActIfDesc    = &(IfDesc->Settings[IfDesc->ActiveIndex]->Desc);\r
   DevDesc      = &(UsbIf->Device->DevDesc->Desc);\r
   StrDesc      = UsbGetOneString (UsbIf->Device, DevDesc->StrSerialNumber, USB_US_LAND_ID);\r