]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Console/Terminal/Dxe/ComponentName.c
Fix component name bugs when input Controller Name is invalid
[mirror_edk2.git] / EdkModulePkg / Universal / Console / Terminal / Dxe / ComponentName.c
index cc925b13c907f73a1cc34cca72968ba21a98b3bb..7a1c23d17c5d5a8aaf80cc9cbd3eb5d401580c0e 100644 (file)
@@ -162,12 +162,34 @@ TerminalComponentNameGetControllerName (
   EFI_SIMPLE_TEXT_OUT_PROTOCOL  *SimpleTextOutput;\r
   TERMINAL_DEV                  *TerminalDevice;\r
 \r
+  //\r
+  // Make sure this driver is currently managing ControllHandle\r
+  //\r
+  Status = EfiTestManagedDevice (\r
+             ControllerHandle,\r
+             gTerminalDriverBinding.DriverBindingHandle,\r
+             &gEfiSerialIoProtocolGuid\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
   //\r
   // This is a bus driver, so ChildHandle can not be NULL.\r
   //\r
   if (ChildHandle == NULL) {\r
     return EFI_UNSUPPORTED;\r
   }\r
+\r
+  Status = EfiTestChildHandle (\r
+             ControllerHandle,\r
+             ChildHandle,\r
+             &gEfiSerialIoProtocolGuid\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
   //\r
   // Get our context back\r
   //\r