diff --git a/RSA.xs b/RSA.xs index af12460..6ee1c96 100644 --- a/RSA.xs +++ b/RSA.xs @@ -623,7 +623,7 @@ _new_key_from_parameters(proto, n, e, d, p, q) } else if (!q) { - q = BN_new(); + THROW(q = BN_new()); THROW(BN_div(q, NULL, n, p, ctx)); } #if OLD_CRUFTY_SSL_VERSION @@ -684,8 +684,19 @@ _new_key_from_parameters(proto, n, e, d, p, q) #else THROW(RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp)); #endif +#endif +#if OPENSSL_VERSION_NUMBER >= 0x30000000L + BN_clear_free(dmp1); + BN_clear_free(dmq1); + BN_clear_free(iqmp); #endif dmp1 = dmq1 = iqmp = NULL; + BN_CTX_free(ctx); + ctx = NULL; + BN_clear_free(p_minus_1); + p_minus_1 = NULL; + BN_clear_free(q_minus_1); + q_minus_1 = NULL; #if OPENSSL_VERSION_NUMBER >= 0x30000000L OSSL_PARAM_BLD_free(params_build); params_build = NULL;