Use BN_CTX_end when exiting early from BN_mod_exp_mont_word because
[openssl.git] / crypto / bn / bn_exp.c
index 470946e53693a163e7d986cd10eb0a2728d79de1..863df241f81423dc8df99bbbf6a7ea2bc29f7611 100644 (file)
@@ -692,7 +692,10 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,
                {
                BN_set_word(t, a);
                if (BN_mod_exp_atalla(rr, t, p, m))
                {
                BN_set_word(t, a);
                if (BN_mod_exp_atalla(rr, t, p, m))
+                       {
+                       BN_CTX_end(ctx);
                        return 1;
                        return 1;
+                       }
                }
 /* If it fails, try the other methods */
 #endif
                }
 /* If it fails, try the other methods */
 #endif