free the Post-Handshake Auth digest when there is an error saving the digest
authorx2018 <xkernel.wang@foxmail.com>
Tue, 26 Oct 2021 03:31:11 +0000 (11:31 +0800)
committerTomas Mraz <tomas@openssl.org>
Wed, 27 Oct 2021 09:07:42 +0000 (11:07 +0200)
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16917)

(cherry picked from commit 963eb12dbd551df71d7eb054e095c1b85f4aaab9)

ssl/statem/statem_lib.c

index eef2fe4367ee044048f04f69fbb967851f4333c1..79ac9be04ba9532ffa01682b3ca330dc631e2a0c 100644 (file)
@@ -2381,6 +2381,8 @@ int tls13_save_handshake_digest_for_pha(SSL *s)
         if (!EVP_MD_CTX_copy_ex(s->pha_dgst,
                                 s->s3.handshake_dgst)) {
             SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
+            EVP_MD_CTX_free(s->pha_dgst);
+            s->pha_dgst = NULL;
             return 0;
         }
     }