diff options
author | Matt Caswell <matt@openssl.org> | 2016-01-29 09:40:03 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-01-29 11:58:45 +0000 |
commit | 83ab6e55a1f8de9b3e45d13dcc78eb739dc66dea (patch) | |
tree | 44260e32d061a2be3cac584acffcce2e02f3fa55 /crypto/dh | |
parent | 7107798ae6c5e19f581915928a69073d17cc21ab (diff) |
Add missing return value checks
The function DH_check_pub_key() was missing some return value checks in
some calls to BN functions.
RT#4278
Reviewed-by: Andy Polyakov <appro@openssl.org>
(cherry picked from commit f5a12207eccfd814bde68b880a96910dfa25f164)
Diffstat (limited to 'crypto/dh')
-rw-r--r-- | crypto/dh/dh_check.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crypto/dh/dh_check.c b/crypto/dh/dh_check.c index 5adedc0d26..0277041114 100644 --- a/crypto/dh/dh_check.c +++ b/crypto/dh/dh_check.c @@ -160,13 +160,12 @@ int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret) goto err; BN_CTX_start(ctx); tmp = BN_CTX_get(ctx); - if (tmp == NULL) + if (tmp == NULL || !BN_set_word(tmp, 1)) goto err; - BN_set_word(tmp, 1); if (BN_cmp(pub_key, tmp) <= 0) *ret |= DH_CHECK_PUBKEY_TOO_SMALL; - BN_copy(tmp, dh->p); - BN_sub_word(tmp, 1); + if (BN_copy(tmp, dh->p) == NULL || !BN_sub_word(tmp, 1)) + goto err; if (BN_cmp(pub_key, tmp) >= 0) *ret |= DH_CHECK_PUBKEY_TOO_LARGE; |