| Index: webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc
|
| index 63a171dfb3c8d9d4878feea0d2498fcb9d4279e4..010d57bae7543f27af650adcd32d95577ebeb71f 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc
|
| @@ -223,6 +223,29 @@ TEST(RtpPacketTest, ParseWithInvalidSizedExtension) {
|
| ElementsAreArray(kPayload));
|
| }
|
|
|
| +TEST(RtpPacketTest, ParseWithOverSizedExtension) {
|
| + // clang-format off
|
| + const uint8_t bad_packet[] = {
|
| + 0x90, kPayloadType, 0x00, kSeqNum,
|
| + 0x65, 0x43, 0x12, 0x78, // kTimestamp.
|
| + 0x12, 0x34, 0x56, 0x78, // kSsrc.
|
| + 0xbe, 0xde, 0x00, 0x01, // Extension of size 1x32bit word.
|
| + 0x00, // Add a byte of padding.
|
| + 0x12, // Extension id 1 size (2+1).
|
| + 0xda, 0x1a // Only 2 bytes of extension payload.
|
| + };
|
| + // clang-format on
|
| + RtpPacketToSend::ExtensionManager extensions;
|
| + extensions.Register(TransmissionOffset::kId, 1);
|
| + RtpPacketReceived packet(&extensions);
|
| +
|
| + // Parse should ignore bad extension and proceed.
|
| + EXPECT_TRUE(packet.Parse(bad_packet, sizeof(bad_packet)));
|
| + int32_t time_offset;
|
| + // But extracting extension should fail.
|
| + EXPECT_FALSE(packet.GetExtension<TransmissionOffset>(&time_offset));
|
| +}
|
| +
|
| TEST(RtpPacketTest, ParseWith2Extensions) {
|
| RtpPacketToSend::ExtensionManager extensions;
|
| extensions.Register(kRtpExtensionTransmissionTimeOffset,
|
|
|