]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Udp6Dxe/Udp6Driver.c
NetworkPkg: Add more parameter or return status check in UDP6 driver
[mirror_edk2.git] / NetworkPkg / Udp6Dxe / Udp6Driver.c
index 6dde1fc07e96cd56598a87e5a2e9eff46441c72b..f9d528e68fb3cd623840d113a821e31453895d11 100644 (file)
@@ -290,18 +290,15 @@ Udp6DriverBindingStop (
                NULL\r
                );\r
   } else if (IsListEmpty (&Udp6Service->ChildrenList)) {\r
-    gBS->UninstallMultipleProtocolInterfaces (\r
-           NicHandle,\r
-           &gEfiUdp6ServiceBindingProtocolGuid,\r
-           &Udp6Service->ServiceBinding,\r
-           NULL\r
-           );\r
+    Status = gBS->UninstallMultipleProtocolInterfaces (\r
+               NicHandle,\r
+               &gEfiUdp6ServiceBindingProtocolGuid,\r
+               &Udp6Service->ServiceBinding,\r
+               NULL\r
+               );\r
  \r
     Udp6CleanService (Udp6Service);\r
-\r
     FreePool (Udp6Service);\r
-\r
-    Status = EFI_SUCCESS;\r
   }\r
 \r
   return Status;\r
@@ -510,21 +507,30 @@ Udp6ServiceBindingDestroyChild (
   //\r
   // Close the Ip6 protocol on the default IpIo.\r
   //\r
-  gBS->CloseProtocol (\r
-         Udp6Service->IpIo->ChildHandle,\r
-         &gEfiIp6ProtocolGuid,\r
-         gUdp6DriverBinding.DriverBindingHandle,\r
-         Instance->ChildHandle\r
-         );\r
+  Status = gBS->CloseProtocol (\r
+             Udp6Service->IpIo->ChildHandle,\r
+             &gEfiIp6ProtocolGuid,\r
+             gUdp6DriverBinding.DriverBindingHandle,\r
+             Instance->ChildHandle\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    Instance->InDestroy = FALSE;\r
+    return Status;\r
+  }\r
+\r
   //\r
   // Close the Ip6 protocol on this instance's IpInfo.\r
   //\r
-  gBS->CloseProtocol (\r
-         Instance->IpInfo->ChildHandle,\r
-         &gEfiIp6ProtocolGuid,\r
-         gUdp6DriverBinding.DriverBindingHandle,\r
-         Instance->ChildHandle\r
-         );\r
+  Status = gBS->CloseProtocol (\r
+             Instance->IpInfo->ChildHandle,\r
+             &gEfiIp6ProtocolGuid,\r
+             gUdp6DriverBinding.DriverBindingHandle,\r
+             Instance->ChildHandle\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    Instance->InDestroy = FALSE;\r
+    return Status;\r
+  }\r
 \r
   //\r
   // Uninstall the Udp6Protocol previously installed on the ChildHandle.\r