diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2017-06-13 22:34:30 +0200 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2017-06-14 09:45:50 -0400 |
commit | ccefe0e3a5cb1c20a9c860116ad29547659afc13 (patch) | |
tree | cfb52b7a581e73bc4d7e63fca5268c92dac5799e /crypto/bn | |
parent | 7ff7f5e9b826325c851869846ffb0ce58fdba15f (diff) |
Fix possible crash in X931 code.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3675)
(cherry picked from commit 5419dadd4bd1f7abbfa23326ca766d2c143f257c)
Diffstat (limited to 'crypto/bn')
-rw-r--r-- | crypto/bn/bn_x931p.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crypto/bn/bn_x931p.c b/crypto/bn/bn_x931p.c index efa48bdf87..f444af3fea 100644 --- a/crypto/bn/bn_x931p.c +++ b/crypto/bn/bn_x931p.c @@ -217,6 +217,8 @@ int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx) BN_CTX_start(ctx); t = BN_CTX_get(ctx); + if (t == NULL) + goto err; for (i = 0; i < 1000; i++) { if (!BN_rand(Xq, nbits, 1, 0)) @@ -255,10 +257,12 @@ int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, int ret = 0; BN_CTX_start(ctx); - if (!Xp1) + if (Xp1 == NULL) Xp1 = BN_CTX_get(ctx); - if (!Xp2) + if (Xp2 == NULL) Xp2 = BN_CTX_get(ctx); + if (Xp1 == NULL || Xp2 == NULL) + goto error; if (!BN_rand(Xp1, 101, 0, 0)) goto error; |