diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2015-06-21 16:06:21 +0100 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2015-06-21 18:13:05 +0100 |
commit | f6a103133abefd7795260af3f439d84430331e33 (patch) | |
tree | 02ed2d2a5f063c31177026df5d1e9e4bb6c88dfb /ssl | |
parent | d480e182fe20fcaeca7817a4693eeaf594bb1a32 (diff) |
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@openssl.org>
Diffstat (limited to 'ssl')
-rw-r--r-- | ssl/s3_enc.c | 8 | ||||
-rw-r--r-- | 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 eedf74d392..bde19e1fb8 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 36b5f0d3ab..03078016e6 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) { |