summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorHugo Landau <hlandau@openssl.org>2022-03-01 14:08:12 +0000
committerTomas Mraz <tomas@openssl.org>2022-03-03 10:32:57 +0100
commit8845aeb3ed528491b9eccba365182f90540e5b95 (patch)
treefdaaa77b6a6619130e2e0cb7524df539b7a6dec9 /crypto
parent2d7afbd93dda02feb3435e585c62c04a07a198d3 (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.c2
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;
}