From 625679b6d79296e020bb0cad31d6ac24ad547a39 Mon Sep 17 00:00:00 2001 From: Pauli Date: Wed, 26 Aug 2020 14:36:50 +1000 Subject: [PATCH] EVP: NULL pctx pointer after free. Not doing so can result in a double free. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/12718) --- crypto/evp/digest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c index f9ba59ca635..c9b4e3fd6e3 100644 --- a/crypto/evp/digest.c +++ b/crypto/evp/digest.c @@ -34,8 +34,10 @@ int EVP_MD_CTX_reset(EVP_MD_CTX *ctx) * pctx should be freed by the user of EVP_MD_CTX * if EVP_MD_CTX_FLAG_KEEP_PKEY_CTX is set */ - if (!EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX)) + if (!EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX)) { EVP_PKEY_CTX_free(ctx->pctx); + ctx->pctx = NULL; + } #endif EVP_MD_free(ctx->fetched_digest); -- 2.47.2