Resolve an old TODO in TestState::Deserialize
This was, I assume, needed for cross-version tests, but we're long past
2020 now. While I'm here, switch a unique_ptr(new T) into make_unique as
we can rely on C++14 now.
Change-Id: I3f2fde90f124522c21868c15217f607b7f6d75db
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/61428
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/ssl/test/test_state.cc b/ssl/test/test_state.cc
index 7c22a62..aac9886 100644
--- a/ssl/test/test_state.cc
+++ b/ssl/test/test_state.cc
@@ -151,34 +151,30 @@
std::unique_ptr<TestState> TestState::Deserialize(CBS *cbs, SSL_CTX *ctx) {
CBS in, pending_session, text;
- std::unique_ptr<TestState> out_state(new TestState());
+ auto state = std::make_unique<TestState>();
uint16_t version;
constexpr uint16_t kVersion = 0;
uint64_t sec, usec;
- if (!CBS_get_u24_length_prefixed(cbs, &in) ||
- !CBS_get_u16(&in, &version) ||
+ if (!CBS_get_u24_length_prefixed(cbs, &in) || //
+ !CBS_get_u16(&in, &version) || //
version > kVersion ||
!CBS_get_u24_length_prefixed(&in, &pending_session) ||
- !CBS_get_u16_length_prefixed(&in, &text)) {
+ !CBS_get_u16_length_prefixed(&in, &text) ||
+ !CBS_get_asn1_uint64(&in, &sec) || //
+ !CBS_get_asn1_uint64(&in, &usec) || //
+ usec >= 1000000) {
return nullptr;
}
if (CBS_len(&pending_session)) {
- out_state->pending_session = SSL_SESSION_parse(
+ state->pending_session = SSL_SESSION_parse(
&pending_session, ctx->x509_method, ctx->pool);
- if (!out_state->pending_session) {
+ if (!state->pending_session) {
return nullptr;
}
}
- out_state->msg_callback_text = std::string(
+ state->msg_callback_text = std::string(
reinterpret_cast<const char *>(CBS_data(&text)), CBS_len(&text));
- // TODO(2020-05-01): Make this unconditional & merge into above.
- if (CBS_len(&in) > 0) {
- if (!CBS_get_asn1_uint64(&in, &sec) ||
- !CBS_get_asn1_uint64(&in, &usec)) {
- return nullptr;
- }
- g_clock.tv_sec = sec;
- g_clock.tv_usec = usec;
- }
- return out_state;
+ g_clock.tv_sec = sec;
+ g_clock.tv_usec = usec;
+ return state;
}