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 <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> Reviewed-by: Steven Valdez <svaldez@google.com>
diff --git a/ssl/d1_both.cc b/ssl/d1_both.cc index 66f59a4..24bd915 100644 --- a/ssl/d1_both.cc +++ b/ssl/d1_both.cc
@@ -433,9 +433,7 @@ 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 d63d133..28eebdd 100644 --- a/ssl/s3_both.cc +++ b/ssl/s3_both.cc
@@ -525,6 +525,14 @@ CBS_init(&out->raw, reinterpret_cast<const uint8_t *>(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 @@ 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;