Commit 35b8874b1d for openssl.org
commit 35b8874b1d45aed1a5a604cca75d7af3c1c72067
Author: Tomas Mraz <tomas@openssl.foundation>
Date: Tue Oct 6 18:44:19 2026 +0200
rsa_multiprime_keygen(): Fix leak of tmp if stack insertion fails
Reviewed-by: Daniel Kubec <kubec@openssl.foundation>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Milan Broz <mbroz@openssl.org>
Reviewed-by: Bob Beck <beck@openssl.org>
Merge-date: Wed Oct 7 07:39:03 2026
Merged-from: https://github.com/openssl/openssl/pull/33129
diff --git a/crypto/rsa/rsa_gen.c b/crypto/rsa/rsa_gen.c
index d7c37e7c78..431bd85dd5 100644
--- a/crypto/rsa/rsa_gen.c
+++ b/crypto/rsa/rsa_gen.c
@@ -457,8 +457,10 @@ static int rsa_multiprime_keygen(RSA *rsa, int bits, int primes,
tmp = BN_dup(prime);
if (tmp == NULL)
goto err;
- if (!sk_BIGNUM_insert(factors, tmp, sk_BIGNUM_num(factors)))
+ if (!sk_BIGNUM_insert(factors, tmp, sk_BIGNUM_num(factors))) {
+ BN_clear_free(tmp);
goto err;
+ }
continue;
}
@@ -527,8 +529,10 @@ static int rsa_multiprime_keygen(RSA *rsa, int bits, int primes,
tmp = BN_dup(prime);
if (tmp == NULL)
goto err;
- if (!sk_BIGNUM_insert(factors, tmp, sk_BIGNUM_num(factors)))
+ if (!sk_BIGNUM_insert(factors, tmp, sk_BIGNUM_num(factors))) {
+ BN_clear_free(tmp);
goto err;
+ }
}
if (BN_cmp(rsa->p, rsa->q) < 0) {