diff options
author | Hugo Landau <hlandau@openssl.org> | 2022-03-01 14:08:12 +0000 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-03-03 10:32:57 +0100 |
commit | 8845aeb3ed528491b9eccba365182f90540e5b95 (patch) | |
tree | fdaaa77b6a6619130e2e0cb7524df539b7a6dec9 /crypto | |
parent | 2d7afbd93dda02feb3435e585c62c04a07a198d3 (diff) |
Fix NULL pointer dereference for BN_mod_exp2_mont
This fixes a bug whereby BN_mod_exp2_mont can dereference a NULL pointer
if BIGNUM argument m represents zero.
Regression test added. Fixes #17648. Backport from master to 1.1.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Todd Short <todd.short@me.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17787)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/bn/bn_exp2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/bn/bn_exp2.c b/crypto/bn/bn_exp2.c index e542abe46f..de3e249d78 100644 --- a/crypto/bn/bn_exp2.c +++ b/crypto/bn/bn_exp2.c @@ -32,7 +32,7 @@ int BN_mod_exp2_mont(BIGNUM *rr, const BIGNUM *a1, const BIGNUM *p1, bn_check_top(p2); bn_check_top(m); - if (!(m->d[0] & 1)) { + if (!BN_is_odd(m)) { BNerr(BN_F_BN_MOD_EXP2_MONT, BN_R_CALLED_WITH_EVEN_MODULUS); return 0; } |