Prevent fuzzer from sending unsupported RETRY packets This CL also adds some DCHECKs and QUIC_BUGs that helped debug this, and a trivial refactor in test code. gfe-relnote: adds QUIC_BUG in send path, not flag protected PiperOrigin-RevId: 272244952 Change-Id: Icb77bbb2e498ef02ddc13a839834ddf9d8ed7632
diff --git a/quic/test_tools/quic_test_utils.cc b/quic/test_tools/quic_test_utils.cc index dae5857..89cf15d 100644 --- a/quic/test_tools/quic_test_utils.cc +++ b/quic/test_tools/quic_test_utils.cc
@@ -922,7 +922,8 @@ if (!versions) { versions = &supported_versions; } - if (QuicVersionHasLongHeaderLengths((*versions)[0].transport_version) && + ParsedQuicVersion version = (*versions)[0]; + if (QuicVersionHasLongHeaderLengths(version.transport_version) && version_flag) { header.retry_token_length_length = VARIABLE_LENGTH_INTEGER_LENGTH_1; header.length_length = VARIABLE_LENGTH_INTEGER_LENGTH_2; @@ -932,7 +933,6 @@ QuicFramer framer(*versions, QuicTime::Zero(), perspective, kQuicDefaultConnectionIdLength); framer.SetInitialObfuscators(destination_connection_id); - ParsedQuicVersion version = (*versions)[0]; EncryptionLevel level = header.version_flag ? ENCRYPTION_INITIAL : ENCRYPTION_FORWARD_SECURE; if (level != ENCRYPTION_INITIAL) {