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:31:24 +0100
commit43135a5d2274c24e97f50e16ce492c22eb717ab2 (patch)
tree83bc81c47f6ead004d720fbfd3a56b5997075998 /crypto
parentdf5c86e9f80d14d699bad4c8889292fd9b4bd7ba (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. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17783)
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 4713503d07..e8043cb26f 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)) {
ERR_raise(ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS);
return 0;
}