]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix memory leak on EVP_CIPHER_param_to_asn1 failure
author77tiann <27392025k@gmail.com>
Thu, 31 Jul 2025 00:47:06 +0000 (17:47 -0700)
committerTomas Mraz <tomas@openssl.org>
Mon, 11 Aug 2025 14:54:46 +0000 (16:54 +0200)
When EVP_CIPHER_param_to_asn1() fails, xalg->parameter was not freed,
leading to a memory leak. This patch adds proper cleanup for that case.
CLA: trivial

Signed-off-by: 77tiann <27392025k@gmail.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28131)

crypto/pkcs7/pk7_doit.c

index 0a6eb3674b55e2b64baf7896c38985468508314b..ebdf912c548411279c63c98eac7c22fef79be809 100644 (file)
@@ -361,8 +361,11 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
                 if (xalg->parameter == NULL)
                     goto err;
             }
-            if (EVP_CIPHER_param_to_asn1(ctx, xalg->parameter) <= 0)
+            if (EVP_CIPHER_param_to_asn1(ctx, xalg->parameter) <= 0) {
+                ASN1_TYPE_free(xalg->parameter);
+                xalg->parameter = NULL;
                 goto err;
+            }
         }
 
         /* Lets do the pub key stuff :-) */