diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc index 252b4828ab..c43bb0e32a 100644 --- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc +++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc @@ -157,6 +157,13 @@ TEST_F(RtcpReceiverTest, BrokenPacketIsIgnored) { EXPECT_EQ(0U, rtcp_packet_info_.rtcpPacketTypeFlags); } +TEST_F(RtcpReceiverTest, InvalidFeedbackPacketIsIgnored) { + // Too short feedback packet. + const uint8_t bad_packet[] = {0x80, RTCPUtility::PT_RTPFB, 0, 0}; + EXPECT_EQ(0, InjectRtcpPacket(bad_packet, sizeof(bad_packet))); + EXPECT_EQ(0U, rtcp_packet_info_.rtcpPacketTypeFlags); +} + TEST_F(RtcpReceiverTest, InjectSrPacket) { const uint32_t kSenderSsrc = 0x10203; rtcp::SenderReport sr; diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc b/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc index e19499612d..63693fa9c2 100644 --- a/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc +++ b/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc @@ -230,6 +230,7 @@ RTCPUtility::RTCPParserV2::IterateTopLevel() { if (!ParseFBCommon(header)) { // Nothing supported found, continue to next block! + EndCurrentBlock(); break; } return;