Fix error handling in compute_key, BN_CTX_get can return NULL
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Thu, 22 Dec 2016 12:51:27 +0000 (13:51 +0100)
committerRichard Levitte <levitte@openssl.org>
Tue, 24 Jan 2017 17:25:22 +0000 (18:25 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2132)

crypto/dh/dh_key.c

index fe021904ccc86c633427d9cdbe9ee8a56800c3ad..204e5a7a421edf9385a67daa96e30c9bcb6bdee8 100644 (file)
@@ -159,6 +159,8 @@ static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
         goto err;
     BN_CTX_start(ctx);
     tmp = BN_CTX_get(ctx);
         goto err;
     BN_CTX_start(ctx);
     tmp = BN_CTX_get(ctx);
+    if (tmp == NULL)
+        goto err;
 
     if (dh->priv_key == NULL) {
         DHerr(DH_F_COMPUTE_KEY, DH_R_NO_PRIVATE_VALUE);
 
     if (dh->priv_key == NULL) {
         DHerr(DH_F_COMPUTE_KEY, DH_R_NO_PRIVATE_VALUE);