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) {