From 03a4b96c12744e02bd70bcaa934eecc97604d372 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 6 Oct 2017 17:54:10 -0400 Subject: [PATCH] Move has_message logic to ssl3_get_message. This doesn't particularly matter but is more consistent with DTLS and avoids the callback being potentially called from two places. Change-Id: I2f57ca94d2d532c56f37a0bac7000c15b3b4b520 Reviewed-on: https://boringssl-review.googlesource.com/21344 Commit-Queue: David Benjamin CQ-Verified: CQ bot account: commit-bot@chromium.org Reviewed-by: Steven Valdez --- ssl/d1_both.cc | 4 +--- ssl/s3_both.cc | 13 ++++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ssl/d1_both.cc b/ssl/d1_both.cc index 66f59a46..24bd9157 100644 --- a/ssl/d1_both.cc +++ b/ssl/d1_both.cc @@ -433,9 +433,7 @@ bool dtls1_get_message(SSL *ssl, SSLMessage *out) { CBS_init(&out->raw, frag->data, DTLS1_HM_HEADER_LENGTH + frag->msg_len); out->is_v2_hello = false; if (!ssl->s3->has_message) { - ssl_do_msg_callback( - ssl, 0 /* read */, SSL3_RT_HANDSHAKE, - MakeSpan(frag->data, frag->msg_len + DTLS1_HM_HEADER_LENGTH)); + ssl_do_msg_callback(ssl, 0 /* read */, SSL3_RT_HANDSHAKE, out->raw); ssl->s3->has_message = true; } return true; diff --git a/ssl/s3_both.cc b/ssl/s3_both.cc index d63d1334..28eebdd4 100644 --- a/ssl/s3_both.cc +++ b/ssl/s3_both.cc @@ -525,6 +525,14 @@ static bool parse_message(SSL *ssl, SSLMessage *out, size_t *out_bytes_needed) { CBS_init(&out->raw, reinterpret_cast(ssl->init_buf->data), 4 + len); out->is_v2_hello = ssl->s3->is_v2_hello; + return true; +} + +bool ssl3_get_message(SSL *ssl, SSLMessage *out) { + size_t unused; + if (!parse_message(ssl, out, &unused)) { + return false; + } if (!ssl->s3->has_message) { if (!out->is_v2_hello) { ssl_do_msg_callback(ssl, 0 /* read */, SSL3_RT_HANDSHAKE, out->raw); @@ -534,11 +542,6 @@ static bool parse_message(SSL *ssl, SSLMessage *out, size_t *out_bytes_needed) { return true; } -bool ssl3_get_message(SSL *ssl, SSLMessage *out) { - size_t unused; - return parse_message(ssl, out, &unused); -} - int ssl3_read_message(SSL *ssl) { SSLMessage msg; size_t bytes_needed;