From: Matt Caswell Date: Fri, 29 Jan 2016 09:40:03 +0000 (+0000) Subject: Add missing return value checks X-Git-Tag: OpenSSL_1_1_0-pre3~380 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f5a12207eccfd814bde68b880a96910dfa25f164;p=openssl 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 --- diff --git a/crypto/dh/dh_check.c b/crypto/dh/dh_check.c index 3f9e90e924..2cc218dbdc 100644 --- a/crypto/dh/dh_check.c +++ b/crypto/dh/dh_check.c @@ -151,13 +151,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;