[openssl-commits] [openssl] master update

Dr. Stephen Henson steve at openssl.org
Sun Jun 21 17:14:05 UTC 2015


The branch master has been updated
       via  f6a103133abefd7795260af3f439d84430331e33 (commit)
      from  d480e182fe20fcaeca7817a4693eeaf594bb1a32 (commit)


- Log -----------------------------------------------------------------
commit f6a103133abefd7795260af3f439d84430331e33
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Sun Jun 21 16:06:21 2015 +0100

    Revert "Avoid duplication."
    
    This reverts commit d480e182fe20fcaeca7817a4693eeaf594bb1a32.
    
    Commit broke TLS handshakes due to fragility of digest caching: that will be
    fixed separately.
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>

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

Summary of changes:
 ssl/s3_enc.c | 8 +-------
 ssl/s3_lib.c | 3 +++
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/ssl/s3_enc.c b/ssl/s3_enc.c
index eedf74d..bde19e1 100644
--- a/ssl/s3_enc.c
+++ b/ssl/s3_enc.c
@@ -476,21 +476,15 @@ void ssl3_cleanup_key_block(SSL *s)
 
 void ssl3_init_finished_mac(SSL *s)
 {
+    BIO_free(s->s3->handshake_buffer);
     ssl3_free_digest_list(s);
     s->s3->handshake_buffer = BIO_new(BIO_s_mem());
     (void)BIO_set_close(s->s3->handshake_buffer, BIO_CLOSE);
 }
 
-/*
- * Free digest list. Also frees handshake buffer since they are always freed
- * together.
- */
-
 void ssl3_free_digest_list(SSL *s)
 {
     int i;
-    BIO_free(s->s3->handshake_buffer);
-    s->s3->handshake_buffer = NULL;
     if (!s->s3->handshake_dgst)
         return;
     for (i = 0; i < SSL_MAX_DIGEST; i++) {
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index 36b5f0d..0307801 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -2905,6 +2905,7 @@ void ssl3_free(SSL *s)
     OPENSSL_free(s->s3->tmp.ciphers_raw);
     OPENSSL_clear_free(s->s3->tmp.pms, s->s3->tmp.pmslen);
     OPENSSL_free(s->s3->tmp.peer_sigalgs);
+    BIO_free(s->s3->handshake_buffer);
     ssl3_free_digest_list(s);
     OPENSSL_free(s->s3->alpn_selected);
 
@@ -2939,6 +2940,8 @@ void ssl3_clear(SSL *s)
 #endif                         /* !OPENSSL_NO_EC */
 
     init_extra = s->s3->init_extra;
+    BIO_free(s->s3->handshake_buffer);
+    s->s3->handshake_buffer = NULL;
     ssl3_free_digest_list(s);
 
     if (s->s3->alpn_selected) {


More information about the openssl-commits mailing list