diff options
author | Matt Caswell <matt@openssl.org> | 2016-04-27 14:38:44 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-06-01 18:00:53 +0100 |
commit | 0e9eb1a57bd2e12eda7939f053240499f6169d74 (patch) | |
tree | 326ec1644f0f0a3feec5290ffd7b94f246b2db89 /crypto | |
parent | ff3bb913cfe47104293138a17014d3bde9db5e32 (diff) | |
download | openssl-0e9eb1a57bd2e12eda7939f053240499f6169d74.tar.gz |
Free tempory data on error in ec_wNAF_mul()
The ec_wNAF_mul() function allocates some temporary storage that it
doesn't always free on an error condition.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/ec/ec_mult.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/ec/ec_mult.c b/crypto/ec/ec_mult.c index 4215dc783a..036cdde490 100644 --- a/crypto/ec/ec_mult.c +++ b/crypto/ec/ec_mult.c @@ -312,6 +312,7 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, numblocks = (tmp_len + blocksize - 1) / blocksize; if (numblocks > pre_comp->numblocks) { ECerr(EC_F_EC_WNAF_MUL, ERR_R_INTERNAL_ERROR); + OPENSSL_free(tmp_wNAF); goto err; } totalnum = num + numblocks; @@ -326,6 +327,7 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, wNAF_len[i] = blocksize; if (tmp_len < blocksize) { ECerr(EC_F_EC_WNAF_MUL, ERR_R_INTERNAL_ERROR); + OPENSSL_free(tmp_wNAF); goto err; } tmp_len -= blocksize; |