]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
EVP_DigestSignFinal: *siglen should not be read if sigret == NULL
authorTomas Mraz <tomas@openssl.org>
Mon, 10 Jan 2022 16:09:59 +0000 (17:09 +0100)
committerTomas Mraz <tomas@openssl.org>
Wed, 12 Jan 2022 12:03:23 +0000 (13:03 +0100)
This fixes small regression from #16962.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17460)

crypto/evp/m_sigver.c

index e034189bb56a679d66abcf244850c9a05826aa26..0993de0937722cb520b8b4588bdc63566beb3faa 100644 (file)
@@ -480,14 +480,14 @@ int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
     if (sigret == NULL || (ctx->flags & EVP_MD_CTX_FLAG_FINALISE) != 0)
         return pctx->op.sig.signature->digest_sign_final(pctx->op.sig.algctx,
                                                          sigret, siglen,
-                                                         (siglen == NULL) ? 0 : *siglen);
+                                                         sigret == NULL ? 0 : *siglen);
     dctx = EVP_PKEY_CTX_dup(pctx);
     if (dctx == NULL)
         return 0;
 
     r = dctx->op.sig.signature->digest_sign_final(dctx->op.sig.algctx,
                                                   sigret, siglen,
-                                                  (siglen == NULL) ? 0 : *siglen);
+                                                  *siglen);
     EVP_PKEY_CTX_free(dctx);
     return r;