]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpDxe/HttpsSupport.c
NetworkPkg/HttpDxe: Destroy the TLS instance when cleaning up the HTTP child
[mirror_edk2.git] / NetworkPkg / HttpDxe / HttpsSupport.c
index e4d9a37bee2db1528e16c242aba0ac256313f7b2..e6f4d5a6ccb285ac626c5e615c0e999829b151a5 100644 (file)
@@ -140,6 +140,7 @@ IsHttpsUrl (
   Creates a Tls child handle, open EFI_TLS_PROTOCOL and EFI_TLS_CONFIGURATION_PROTOCOL.\r
 \r
   @param[in]  ImageHandle           The firmware allocated handle for the UEFI image.\r
+  @param[out] TlsSb                 Pointer to the TLS SERVICE_BINDING_PROTOCOL.\r
   @param[out] TlsProto              Pointer to the EFI_TLS_PROTOCOL instance.\r
   @param[out] TlsConfiguration      Pointer to the EFI_TLS_CONFIGURATION_PROTOCOL instance.\r
 \r
@@ -150,15 +151,14 @@ EFI_HANDLE
 EFIAPI\r
 TlsCreateChild (\r
   IN  EFI_HANDLE                     ImageHandle,\r
+  OUT EFI_SERVICE_BINDING_PROTOCOL   **TlsSb,\r
   OUT EFI_TLS_PROTOCOL               **TlsProto,\r
   OUT EFI_TLS_CONFIGURATION_PROTOCOL **TlsConfiguration\r
   )\r
 {\r
   EFI_STATUS                    Status;\r
-  EFI_SERVICE_BINDING_PROTOCOL  *TlsSb;\r
   EFI_HANDLE                    TlsChildHandle;\r
 \r
-  TlsSb          = NULL;\r
   TlsChildHandle = 0;\r
 \r
   //\r
@@ -167,13 +167,13 @@ TlsCreateChild (
   gBS->LocateProtocol (\r
      &gEfiTlsServiceBindingProtocolGuid,\r
      NULL,\r
-     (VOID **) &TlsSb\r
+     (VOID **) TlsSb\r
      );\r
-  if (TlsSb == NULL) {\r
+  if (*TlsSb == NULL) {\r
     return NULL;\r
   }\r
 \r
-  Status = TlsSb->CreateChild (TlsSb, &TlsChildHandle);\r
+  Status = (*TlsSb)->CreateChild (*TlsSb, &TlsChildHandle);\r
   if (EFI_ERROR (Status)) {\r
     return NULL;\r
   }\r
@@ -187,7 +187,7 @@ TlsCreateChild (
                   EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    TlsSb->DestroyChild (TlsSb, TlsChildHandle);\r
+    (*TlsSb)->DestroyChild (*TlsSb, TlsChildHandle);\r
     return NULL;\r
   }\r
 \r
@@ -200,7 +200,7 @@ TlsCreateChild (
                   EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    TlsSb->DestroyChild (TlsSb, TlsChildHandle);\r
+    (*TlsSb)->DestroyChild (*TlsSb, TlsChildHandle);\r
     return NULL;\r
   }\r
 \r