From: Laszlo Ersek Date: Thu, 22 Mar 2018 09:31:55 +0000 (+0100) Subject: NetworkPkg/HttpDxe: use error handler epilogue in TlsConfigCertificate() X-Git-Tag: edk2-stable201903~2039 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=6f3487a79b41e72782c5baea996c294b4ce38960;hp=1ba4a4df3972cec30b2aa44ff9ff53e5f5eeddc1;ds=sidebyside NetworkPkg/HttpDxe: use error handler epilogue in TlsConfigCertificate() Introduce a FreeCACert label near the end of the function, so that we can keep the FreePool(CACert) statement centralized for error and success exits. Cc: Jiaxin Wu Cc: Siyuan Fu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek Reviewed-by: Fu Siyuan Reviewed-by: Jiaxin Wu --- diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSupport.c index 5105a2014c..9103987a0e 100644 --- a/NetworkPkg/HttpDxe/HttpsSupport.c +++ b/NetworkPkg/HttpDxe/HttpsSupport.c @@ -425,9 +425,8 @@ TlsConfigCertificate ( // GetVariable still error or the variable is corrupted. // Fall back to the default value. // - FreePool (CACert); - - return EFI_NOT_FOUND; + Status = EFI_NOT_FOUND; + goto FreeCACert; } ASSERT (CACert != NULL); @@ -451,8 +450,7 @@ TlsConfigCertificate ( CertList->SignatureSize - sizeof (Cert->SignatureOwner) ); if (EFI_ERROR (Status)) { - FreePool (CACert); - return Status; + goto FreeCACert; } Cert = (EFI_SIGNATURE_DATA *) ((UINT8 *) Cert + CertList->SignatureSize); @@ -462,6 +460,7 @@ TlsConfigCertificate ( CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList->SignatureListSize); } +FreeCACert: FreePool (CACert); return Status; }