| Index: webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc b/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
|
| index 63693fa9c2289cfaf7bf229ec82ff8352225e87d..9b5a83515f4c54ddcd0e78d0ebff3ab7f9ca576f 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
|
| @@ -1334,11 +1334,19 @@ bool RTCPUtility::RTCPParserV2::ParseRPSIItem() {
|
| return false;
|
| }
|
|
|
| - _packetType = RTCPPacketTypes::kPsfbRpsi;
|
|
|
| uint8_t padding_bits = *_ptrRTCPData++;
|
| _packet.RPSI.PayloadType = *_ptrRTCPData++;
|
|
|
| + if (padding_bits > static_cast<uint16_t>(length - 2) * 8) {
|
| + _state = ParseState::State_TopLevel;
|
| +
|
| + EndCurrentBlock();
|
| + return false;
|
| + }
|
| +
|
| + _packetType = RTCPPacketTypes::kPsfbRpsiItem;
|
| +
|
| memcpy(_packet.RPSI.NativeBitString, _ptrRTCPData, length - 2);
|
| _ptrRTCPData += length - 2;
|
|
|
|
|