| Index: net/quic/quic_framer_test.cc
|
| diff --git a/net/quic/quic_framer_test.cc b/net/quic/quic_framer_test.cc
|
| index 6adf405f803bccb41dfa3b703e63ba64a660a8c9..2c33780ab87fc7b5637b1d1d0ea51abbe00e989e 100644
|
| --- a/net/quic/quic_framer_test.cc
|
| +++ b/net/quic/quic_framer_test.cc
|
| @@ -94,21 +94,22 @@ size_t GetFecGroupOffset(bool include_version,
|
| kPrivateFlagsSize;
|
| }
|
|
|
| +// Index into the message tag of the public reset packet.
|
| +// Public resets always have full guids.
|
| +const size_t kPublicResetPacketMessageTagOffset =
|
| + kGuidOffset + PACKET_8BYTE_GUID;
|
| +
|
| +// TODO(wtc): remove this when we drop support for QUIC_VERSION_13.
|
| // Index into the nonce proof of the public reset packet.
|
| // Public resets always have full guids.
|
| const size_t kPublicResetPacketNonceProofOffset =
|
| kGuidOffset + PACKET_8BYTE_GUID;
|
|
|
| +// TODO(wtc): remove this when we drop support for QUIC_VERSION_13.
|
| // Index into the rejected sequence number of the public reset packet.
|
| const size_t kPublicResetPacketRejectedSequenceNumberOffset =
|
| kPublicResetPacketNonceProofOffset + kPublicResetNonceSize;
|
|
|
| -// TODO(wtc): remove this when we drop support for QUIC_VERSION_13.
|
| -// Size of the old-style public reset packet.
|
| -const size_t kPublicResetPacketOldSize =
|
| - kPublicResetPacketRejectedSequenceNumberOffset +
|
| - PACKET_6BYTE_SEQUENCE_NUMBER;
|
| -
|
| class TestEncrypter : public QuicEncrypter {
|
| public:
|
| virtual ~TestEncrypter() {}
|
| @@ -2533,21 +2534,10 @@ TEST_P(QuicFramerTest, PublicResetPacket) {
|
| expected_error = "Unable to read public flags.";
|
| CheckProcessingFails(packet, i, expected_error,
|
| QUIC_INVALID_PACKET_HEADER);
|
| - } else if (i < kPublicResetPacketNonceProofOffset) {
|
| + } else if (i < kPublicResetPacketMessageTagOffset) {
|
| expected_error = "Unable to read GUID.";
|
| CheckProcessingFails(packet, i, expected_error,
|
| QUIC_INVALID_PACKET_HEADER);
|
| - } else if (i < kPublicResetPacketRejectedSequenceNumberOffset) {
|
| - expected_error = "Unable to read nonce proof.";
|
| - CheckProcessingFails(packet, i, expected_error,
|
| - QUIC_INVALID_PUBLIC_RST_PACKET);
|
| - } else if (i < kPublicResetPacketOldSize) {
|
| - expected_error = "Unable to read rejected sequence number.";
|
| - CheckProcessingFails(packet, i, expected_error,
|
| - QUIC_INVALID_PUBLIC_RST_PACKET);
|
| - } else if (i == kPublicResetPacketOldSize) {
|
| - // This looks like an old public reset packet, so there won't be an
|
| - // error.
|
| } else {
|
| expected_error = "Unable to read reset message.";
|
| CheckProcessingFails(packet, i, expected_error,
|
| @@ -2556,6 +2546,40 @@ TEST_P(QuicFramerTest, PublicResetPacket) {
|
| }
|
| }
|
|
|
| +TEST_P(QuicFramerTest, PublicResetPacketWithTrailingJunk) {
|
| + unsigned char packet[] = {
|
| + // public flags (public reset, 8 byte guid)
|
| + 0x0E,
|
| + // guid
|
| + 0x10, 0x32, 0x54, 0x76,
|
| + 0x98, 0xBA, 0xDC, 0xFE,
|
| + // message tag (kPRST)
|
| + 'P', 'R', 'S', 'T',
|
| + // num_entries (2) + padding
|
| + 0x02, 0x00, 0x00, 0x00,
|
| + // tag kRNON
|
| + 'R', 'N', 'O', 'N',
|
| + // end offset 8
|
| + 0x08, 0x00, 0x00, 0x00,
|
| + // tag kRSEQ
|
| + 'R', 'S', 'E', 'Q',
|
| + // end offset 16
|
| + 0x10, 0x00, 0x00, 0x00,
|
| + // nonce proof
|
| + 0x89, 0x67, 0x45, 0x23,
|
| + 0x01, 0xEF, 0xCD, 0xAB,
|
| + // rejected sequence number
|
| + 0xBC, 0x9A, 0x78, 0x56,
|
| + 0x34, 0x12, 0x00, 0x00,
|
| + // trailing junk
|
| + 'j', 'u', 'n', 'k',
|
| + };
|
| +
|
| + string expected_error = "Unable to read reset message.";
|
| + CheckProcessingFails(packet, arraysize(packet), expected_error,
|
| + QUIC_INVALID_PUBLIC_RST_PACKET);
|
| +}
|
| +
|
| TEST_P(QuicFramerTest, PublicResetPacketWithClientAddress) {
|
| unsigned char packet[] = {
|
| // public flags (public reset, 8 byte guid)
|
| @@ -2616,21 +2640,10 @@ TEST_P(QuicFramerTest, PublicResetPacketWithClientAddress) {
|
| expected_error = "Unable to read public flags.";
|
| CheckProcessingFails(packet, i, expected_error,
|
| QUIC_INVALID_PACKET_HEADER);
|
| - } else if (i < kPublicResetPacketNonceProofOffset) {
|
| + } else if (i < kPublicResetPacketMessageTagOffset) {
|
| expected_error = "Unable to read GUID.";
|
| CheckProcessingFails(packet, i, expected_error,
|
| QUIC_INVALID_PACKET_HEADER);
|
| - } else if (i < kPublicResetPacketRejectedSequenceNumberOffset) {
|
| - expected_error = "Unable to read nonce proof.";
|
| - CheckProcessingFails(packet, i, expected_error,
|
| - QUIC_INVALID_PUBLIC_RST_PACKET);
|
| - } else if (i < kPublicResetPacketOldSize) {
|
| - expected_error = "Unable to read rejected sequence number.";
|
| - CheckProcessingFails(packet, i, expected_error,
|
| - QUIC_INVALID_PUBLIC_RST_PACKET);
|
| - } else if (i == kPublicResetPacketOldSize) {
|
| - // This looks like an old public reset packet, so there won't be an
|
| - // error.
|
| } else {
|
| expected_error = "Unable to read reset message.";
|
| CheckProcessingFails(packet, i, expected_error,
|
|
|