From: Pauli Date: Sun, 2 Sep 2018 21:37:38 +0000 (+1000) Subject: Check the return from BN_sub() in BN_X931_generate_Xpq(). X-Git-Tag: OpenSSL_1_1_0j~60 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f2ce14d6cfa83c16b36319d71b245a388ddcc1ce;p=oweals%2Fopenssl.git Check the return from BN_sub() in BN_X931_generate_Xpq(). Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7088) (cherry picked from commit 6bcfcf16bf6aef4f9ec267d8b86ae1bffd8deab9) --- diff --git a/crypto/bn/bn_x931p.c b/crypto/bn/bn_x931p.c index 8bfbcac6a4..24f6a85bef 100644 --- a/crypto/bn/bn_x931p.c +++ b/crypto/bn/bn_x931p.c @@ -184,8 +184,10 @@ int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx) for (i = 0; i < 1000; i++) { if (!BN_rand(Xq, nbits, BN_RAND_TOP_TWO, BN_RAND_BOTTOM_ANY)) goto err; + /* Check that |Xp - Xq| > 2^(nbits - 100) */ - BN_sub(t, Xp, Xq); + if (!BN_sub(t, Xp, Xq)) + goto err; if (BN_num_bits(t) > (nbits - 100)) break; }