From: Tomas Mraz Date: Wed, 11 Dec 2024 15:34:25 +0000 (+0100) Subject: Fix leak of a RAND_POOL in error condition X-Git-Tag: openssl-3.5.0-alpha1~829 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c5257fd8d0b37a615484e937289b28ebe2c87ac9;p=thirdparty%2Fopenssl.git Fix leak of a RAND_POOL in error condition Fixes Coverity 1636676 Reviewed-by: Neil Horman Reviewed-by: Paul Dale Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/26154) --- diff --git a/providers/implementations/rands/seed_src.c b/providers/implementations/rands/seed_src.c index b335a638623..1faab39138d 100644 --- a/providers/implementations/rands/seed_src.c +++ b/providers/implementations/rands/seed_src.c @@ -112,8 +112,10 @@ static int seed_src_generate(void *vseed, unsigned char *out, size_t outlen, entropy_available = ossl_pool_acquire_entropy(pool); if (entropy_available > 0) { - if (!ossl_rand_pool_adin_mix_in(pool, adin, adin_len)) + if (!ossl_rand_pool_adin_mix_in(pool, adin, adin_len)) { + ossl_rand_pool_free(pool); return 0; + } memcpy(out, ossl_rand_pool_buffer(pool), ossl_rand_pool_length(pool)); } diff --git a/providers/implementations/rands/seed_src_jitter.c b/providers/implementations/rands/seed_src_jitter.c index 5d1ff374023..3df03f1e23d 100644 --- a/providers/implementations/rands/seed_src_jitter.c +++ b/providers/implementations/rands/seed_src_jitter.c @@ -198,8 +198,10 @@ static int jitter_generate(void *vseed, unsigned char *out, size_t outlen, entropy_available = ossl_prov_acquire_entropy_from_jitter(s, pool); if (entropy_available > 0) { - if (!ossl_rand_pool_adin_mix_in(pool, adin, adin_len)) + if (!ossl_rand_pool_adin_mix_in(pool, adin, adin_len)) { + ossl_rand_pool_free(pool); return 0; + } memcpy(out, ossl_rand_pool_buffer(pool), ossl_rand_pool_length(pool)); }