Commit a0108702 authored by Matt Caswell's avatar Matt Caswell
Browse files

Fix EVP_DigestInit_ex with NULL digest



Calling EVP_DigestInit_ex which has already had the digest set up for it
should be possible. You are supposed to be able to pass NULL for the type.
However currently this seg faults.

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
parent 8c5a7b33
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -187,10 +187,13 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
            ctx->engine = impl;
        } else
            ctx->engine = NULL;
    } else if (!ctx->digest) {
    } else {
        if (!ctx->digest) {
            EVPerr(EVP_F_EVP_DIGESTINIT_EX, EVP_R_NO_DIGEST_SET);
            return 0;
        }
        type = ctx->digest;
    }
#endif
    if (ctx->digest != type) {
        if (ctx->digest && ctx->digest->ctx_size)