From: Matt Caswell Date: Wed, 11 Mar 2015 15:31:16 +0000 (+0000) Subject: Fix error handling in bn_exp X-Git-Tag: OpenSSL_1_1_0-pre1~1558 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8c5a7b33c6269c3bd6bc0df6b4c22e4fba03b485;p=openssl Fix error handling in bn_exp In the event of an error |rr| could be NULL. Therefore don't assume you can use |rr| in the error handling code. Reviewed-by: Andy Polyakov --- diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c index 28a9fd53bb..8c46e50bdc 100644 --- a/crypto/bn/bn_exp.c +++ b/crypto/bn/bn_exp.c @@ -185,10 +185,10 @@ int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) goto err; } } - ret = 1; - err: if (r != rr) BN_copy(r, rr); + ret = 1; + err: BN_CTX_end(ctx); bn_check_top(r); return (ret);