25 lines
767 B
Diff
25 lines
767 B
Diff
|
diff -up openssl-1.0.2k/crypto/dh/dh_key.c.large-dh openssl-1.0.2k/crypto/dh/dh_key.c
|
||
|
--- openssl-1.0.2k/crypto/dh/dh_key.c.large-dh 2018-06-18 13:46:24.268137362 +0200
|
||
|
+++ openssl-1.0.2k/crypto/dh/dh_key.c 2018-06-18 13:59:04.605497462 +0200
|
||
|
@@ -133,7 +133,7 @@ static int generate_key(DH *dh)
|
||
|
int ok = 0;
|
||
|
int generate_new_key = 0;
|
||
|
unsigned l;
|
||
|
- BN_CTX *ctx;
|
||
|
+ BN_CTX *ctx = NULL;
|
||
|
BN_MONT_CTX *mont = NULL;
|
||
|
BIGNUM *pub_key = NULL, *priv_key = NULL;
|
||
|
|
||
|
@@ -145,6 +145,11 @@ static int generate_key(DH *dh)
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
+ if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS) {
|
||
|
+ DHerr(DH_F_GENERATE_KEY, DH_R_MODULUS_TOO_LARGE);
|
||
|
+ return 0;
|
||
|
+ }
|
||
|
+
|
||
|
ctx = BN_CTX_new();
|
||
|
if (ctx == NULL)
|
||
|
goto err;
|