aboutsummaryrefslogtreecommitdiff
path: root/ssl/s3_enc.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2015-06-20 15:44:03 +0100
committerDr. Stephen Henson <steve@openssl.org>2015-06-23 22:24:09 +0100
commitc72382048f8e6bfea1fbe1b2e25a0423182bb4f0 (patch)
tree21565813a0852ed837358a5df00cb9492f258aa1 /ssl/s3_enc.c
parent124037fdc0571b5bd9022412348e9979a1726a31 (diff)
downloadopenssl-c72382048f8e6bfea1fbe1b2e25a0423182bb4f0.zip
openssl-c72382048f8e6bfea1fbe1b2e25a0423182bb4f0.tar.gz
openssl-c72382048f8e6bfea1fbe1b2e25a0423182bb4f0.tar.bz2
Avoid duplication.
We always free the handshake buffer when digests are freed so move it into ssl_free_digest_list() Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
Diffstat (limited to 'ssl/s3_enc.c')
-rw-r--r--ssl/s3_enc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ssl/s3_enc.c b/ssl/s3_enc.c
index 5e52af8..02e07ba 100644
--- a/ssl/s3_enc.c
+++ b/ssl/s3_enc.c
@@ -476,15 +476,21 @@ 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++) {