openssl: avoid NULL pointer dereference in dh_pub_encode()/dsa_pub_encode()

We should avoid accessing the pointer if ASN1_STRING_new()
allocates memory failed.

Upstream-Status: Submitted
http://www.mail-archive.com/openssl-dev@openssl.org/msg32859.html

Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
---
Index: openssl-1.0.2/crypto/dh/dh_ameth.c
===================================================================
--- openssl-1.0.2.orig/crypto/dh/dh_ameth.c
+++ openssl-1.0.2/crypto/dh/dh_ameth.c
@@ -161,6 +161,11 @@ static int dh_pub_encode(X509_PUBKEY *pk
     dh = pkey->pkey.dh;
 
     str = ASN1_STRING_new();
+    if (!str) {
+        DHerr(DH_F_DH_PUB_ENCODE, ERR_R_MALLOC_FAILURE);
+        goto err;
+    }
+
     str->length = i2d_dhp(pkey, dh, &str->data);
     if (str->length <= 0) {
         DHerr(DH_F_DH_PUB_ENCODE, ERR_R_MALLOC_FAILURE);
