From: JiashengJiang Date: Sat, 17 May 2025 00:20:47 +0000 (-0400) Subject: test/evp_test.c: Free fetched_digest on error to avoid memory leak X-Git-Tag: openssl-3.4.2~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d4cbf04552d971029eeb762e72744411816dfd7;p=thirdparty%2Fopenssl.git test/evp_test.c: Free fetched_digest on error to avoid memory leak Call EVP_MD_free() to release fetched_digest if OPENSSL_zalloc() fails, preventing a memory leak. Fixes: 2208ba56eb ("evp_test: Add the missing check after calling OPENSSL_malloc") Signed-off-by: JiashengJiang Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/27648) (cherry picked from commit e8deb32af4874c781838c1596c6355712b5d0ed0) --- diff --git a/test/evp_test.c b/test/evp_test.c index 08abdf3648e..3bf8e4ddf9e 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -675,8 +675,10 @@ static int digest_test_init(EVP_TEST *t, const char *alg) if ((digest = fetched_digest = EVP_MD_fetch(libctx, alg, propquery)) == NULL && (digest = EVP_get_digestbyname(alg)) == NULL) return 0; - if (!TEST_ptr(mdat = OPENSSL_zalloc(sizeof(*mdat)))) + if (!TEST_ptr(mdat = OPENSSL_zalloc(sizeof(*mdat)))) { + EVP_MD_free(fetched_digest); return 0; + } t->data = mdat; mdat->digest = digest; mdat->fetched_digest = fetched_digest;