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:31:48 +0100 |
commit | deaf22669a76ca014996e6d42883b3d43c8c3384 (patch) | |
tree | d2125c5209eb67af4f84ea53cf66dec758ab3116 /crypto/bn | |
parent | d9d2cf1401949d900f31bdc730074e278ff274f6 (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)
(cherry picked from commit 43135a5d2274c24e97f50e16ce492c22eb717ab2)
Diffstat (limited to 'crypto/bn')
-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 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; } |