[openssl-commits] [openssl] master update

Matt Caswell matt at openssl.org
Fri Mar 18 11:47:00 UTC 2016


The branch master has been updated
       via  ffe9150b1508a0ffc9e724f975691f24eb045c05 (commit)
      from  507c7c0ed6cbecbe16114dbbbb9fecc5ce5863a4 (commit)


- Log -----------------------------------------------------------------
commit ffe9150b1508a0ffc9e724f975691f24eb045c05
Author: Matt Caswell <matt at openssl.org>
Date:   Mon Mar 14 17:06:19 2016 +0000

    Fix a potential double free in EVP_DigestInit_ex
    
    There is a potential double free in EVP_DigestInit_ex. This is believed
    to be reached only as a result of programmer error - but we should fix it
    anyway.
    
    Issue reported by Guido Vranken.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 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 f89f1c8..0ed8845 100644
--- a/crypto/evp/digest.c
+++ b/crypto/evp/digest.c
@@ -219,8 +219,10 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
     }
 #endif
     if (ctx->digest != type) {
-        if (ctx->digest && ctx->digest->ctx_size)
+        if (ctx->digest && ctx->digest->ctx_size) {
             OPENSSL_free(ctx->md_data);
+            ctx->md_data = NULL;
+        }
         ctx->digest = type;
         if (!(ctx->flags & EVP_MD_CTX_FLAG_NO_INIT) && type->ctx_size) {
             ctx->update = type->update;


More information about the openssl-commits mailing list