From: 77tiann <27392025k@gmail.com> Date: Thu, 31 Jul 2025 00:47:06 +0000 (-0700) Subject: Fix memory leak on EVP_CIPHER_param_to_asn1 failure X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fopenssl-3.2;p=thirdparty%2Fopenssl.git Fix memory leak on EVP_CIPHER_param_to_asn1 failure 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 Reviewed-by: Dmitry Belyavskiy Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/28131) (cherry picked from commit bda2473a44e4534c3c640ce89a0971874165c6df) --- diff --git a/crypto/pkcs7/pk7_doit.c b/crypto/pkcs7/pk7_doit.c index d15a3167235..b35e284ac67 100644 --- a/crypto/pkcs7/pk7_doit.c +++ b/crypto/pkcs7/pk7_doit.c @@ -324,8 +324,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 :-) */