From: JiashengJiang Date: Thu, 22 May 2025 01:12:18 +0000 (-0400) Subject: crypto/pkcs7/pk7_smime.c: Add BIO_free() to avoid memory leak X-Git-Tag: openssl-3.4.2~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e9ca38e84f60386f11d37f48297afd865328940;p=thirdparty%2Fopenssl.git crypto/pkcs7/pk7_smime.c: Add BIO_free() to avoid memory leak Add BIO_free() to free tmpout if OPENSSL_malloc() fails to avoid memory leak. Fixes: 8e70485 ("RT3955: Reduce some stack usage") Signed-off-by: JiashengJiang Reviewed-by: Shane Lontis Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/27631) (cherry picked from commit 9882d389df71ef7163c7769b4431a0dbe713ab65) --- diff --git a/crypto/pkcs7/pk7_smime.c b/crypto/pkcs7/pk7_smime.c index 3f9ba3b7d6d..c3f0f839689 100644 --- a/crypto/pkcs7/pk7_smime.c +++ b/crypto/pkcs7/pk7_smime.c @@ -333,10 +333,8 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, if (flags & PKCS7_TEXT) { if (!SMIME_text(tmpout, out)) { ERR_raise(ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR); - BIO_free(tmpout); goto err; } - BIO_free(tmpout); } /* Now Verify All Signatures */ @@ -354,6 +352,8 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, ret = 1; err: + if (flags & PKCS7_TEXT) + BIO_free(tmpout); X509_STORE_CTX_free(cert_ctx); OPENSSL_free(buf); if (indata != NULL)