openssl: avoid NULL pointer dereference in EVP_DigestInit_ex()

We should avoid accessing the type pointer if it's NULL,
this could happen if ctx->digest is not NULL.

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

Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
---
Index: openssl-1.0.2h/crypto/evp/digest.c
===================================================================
--- openssl-1.0.2h.orig/crypto/evp/digest.c
+++ openssl-1.0.2h/crypto/evp/digest.c
@@ -211,7 +211,7 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, c
         type = ctx->digest;
     }
 #endif
-    if (ctx->digest != type) {
+    if (type && (ctx->digest != type)) {
         if (ctx->digest && ctx->digest->ctx_size) {
             OPENSSL_free(ctx->md_data);
             ctx->md_data = NULL;
