]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c
MdeMdeModulePkg/UsbBusDxe: If DisconnectController() returns an error the USB Bus...
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbBusDxe / UsbDesc.c
index 35cdaf55277ce4abfe505b9135697d654a483c1c..b2401ca40e34807638da5b7798314f3d76c3caf5 100644 (file)
@@ -786,10 +786,13 @@ UsbBuildDescTable (
     return Status;\r
   }\r
 \r
-  DevDesc          = UsbDev->DevDesc;\r
-  NumConfig        = DevDesc->Desc.NumConfigurations;\r
-  DevDesc->Configs = AllocateZeroPool (NumConfig * sizeof (USB_CONFIG_DESC *));\r
+  DevDesc   = UsbDev->DevDesc;\r
+  NumConfig = DevDesc->Desc.NumConfigurations;\r
+  if (NumConfig == 0) {\r
+    return EFI_DEVICE_ERROR;\r
+  }\r
 \r
+  DevDesc->Configs = AllocateZeroPool (NumConfig * sizeof (USB_CONFIG_DESC *));\r
   if (DevDesc->Configs == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -844,7 +847,7 @@ UsbBuildDescTable (
   Status = UsbBuildLangTable (UsbDev);\r
 \r
   if (EFI_ERROR (Status)) {\r
-    DEBUG (( EFI_D_ERROR, "UsbBuildDescTable: get language ID table %r\n", Status));\r
+    DEBUG (( EFI_D_INFO, "UsbBuildDescTable: get language ID table %r\n", Status));\r
   }\r
 \r
   return EFI_SUCCESS;\r