Check return from BN_set_word.
authorPauli <paul.dale@oracle.com>
Thu, 28 Jun 2018 23:55:23 +0000 (09:55 +1000)
committerPauli <paul.dale@oracle.com>
Fri, 29 Jun 2018 03:21:06 +0000 (13:21 +1000)
In ssl/t1_lib.c.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6613)

ssl/t1_lib.c

index 1826dd2bb3656eb2e12239c811ce1a0874cba80e..abf523e49c81691d1cf99e7834fbbd31e33422d8 100644 (file)
@@ -2309,13 +2309,16 @@ DH *ssl_get_auto_dh(SSL *s)
         if (dhp == NULL)
             return NULL;
         g = BN_new();
-        if (g != NULL)
-            BN_set_word(g, 2);
+        if (g == NULL || !BN_set_word(g, 2)) {
+            DH_free(dhp);
+            BN_free(g);
+            return NULL;
+        }
         if (dh_secbits >= 192)
             p = BN_get_rfc3526_prime_8192(NULL);
         else
             p = BN_get_rfc3526_prime_3072(NULL);
-        if (p == NULL || g == NULL || !DH_set0_pqg(dhp, p, NULL, g)) {
+        if (p == NULL || !DH_set0_pqg(dhp, p, NULL, g)) {
             DH_free(dhp);
             BN_free(p);
             BN_free(g);