diff options
author | Hugo Landau <hlandau@openssl.org> | 2022-03-01 15:08:12 +0100 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-03-03 10:31:24 +0100 |
commit | 43135a5d2274c24e97f50e16ce492c22eb717ab2 (patch) | |
tree | 83bc81c47f6ead004d720fbfd3a56b5997075998 /crypto/bn | |
parent | Enable openssl req -x509 to create certificates from CSRs (diff) | |
download | openssl-43135a5d2274c24e97f50e16ce492c22eb717ab2.tar.xz openssl-43135a5d2274c24e97f50e16ce492c22eb717ab2.zip |
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/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; } |