]> git.proxmox.com Git - mirror_edk2.git/commitdiff
CryptoPkg: BaseCryptLib: Fix buffer double free in CryptPkcs7VerifyEku
authorKun Qin <kun.q@outlook.com>
Fri, 20 Nov 2020 22:24:32 +0000 (06:24 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 26 Nov 2020 03:22:24 +0000 (03:22 +0000)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2459

SignerCert is part of Pkcs7 instance when both have valid content. OpenSLL
PKCS7_free function will release the memory of SignerCert when applicable.
Freeing SignerCert with X509_free again might cause page fault if use-
after-free guard is enabled.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>
Signed-off-by: Kun Qin <kun.q@outlook.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c

index c9fdb65b99d1d7af2ee405d14c7559ae452778a1..40cc39afe7dd529d5bfd12855b053ba89905c7a4 100644 (file)
@@ -508,10 +508,6 @@ Exit:
     free (SignedData);\r
   }\r
 \r
-  if (SignerCert != NULL) {\r
-    X509_free (SignerCert);\r
-  }\r
-\r
   if (Pkcs7 != NULL) {\r
     PKCS7_free (Pkcs7);\r
   }\r