Always release init_buf after the handshake.
Post-handshake retransmit in DTLS no longer needs that scratch space.
Change-Id: I2f070675d72426e61b19dab5bcac40bf62b8fd8d
Reviewed-on: https://boringssl-review.googlesource.com/8434
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/handshake_client.c b/ssl/handshake_client.c
index 8fef3f5..5bc6bdc 100644
--- a/ssl/handshake_client.c
+++ b/ssl/handshake_client.c
@@ -505,15 +505,9 @@
/* clean a few things up */
ssl3_cleanup_key_block(ssl);
- /* |init_buf| cannot be released in DTLS because post-handshake
- * retransmit relies on that buffer being available as scratch space.
- *
- * TODO(davidben): Fix this. */
- if (!SSL_IS_DTLS(ssl)) {
- BUF_MEM_free(ssl->init_buf);
- ssl->init_buf = NULL;
- ssl->init_num = 0;
- }
+ BUF_MEM_free(ssl->init_buf);
+ ssl->init_buf = NULL;
+ ssl->init_num = 0;
/* Remove write buffering now. */
ssl_free_wbio_buffer(ssl);
diff --git a/ssl/handshake_server.c b/ssl/handshake_server.c
index a466d4a..0d06929 100644
--- a/ssl/handshake_server.c
+++ b/ssl/handshake_server.c
@@ -497,15 +497,9 @@
/* clean a few things up */
ssl3_cleanup_key_block(ssl);
- /* In DTLS, |init_buf| cannot be released because post-handshake
- * retransmit relies on that buffer being available as scratch space.
- *
- * TODO(davidben): Fix this. */
- if (!SSL_IS_DTLS(ssl)) {
- BUF_MEM_free(ssl->init_buf);
- ssl->init_buf = NULL;
- ssl->init_num = 0;
- }
+ BUF_MEM_free(ssl->init_buf);
+ ssl->init_buf = NULL;
+ ssl->init_num = 0;
/* remove buffering on output */
ssl_free_wbio_buffer(ssl);