| Index: webrtc/modules/rtp_rtcp/source/fec_receiver_impl.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/fec_receiver_impl.cc b/webrtc/modules/rtp_rtcp/source/fec_receiver_impl.cc
|
| index ce240860a5881cf6b2260054611db071f7e2b9de..cf46ca9c333353e0eefba6e7cad59c65ab8c9e47 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/fec_receiver_impl.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/fec_receiver_impl.cc
|
| @@ -104,7 +104,7 @@ int32_t FecReceiverImpl::AddReceivedRedPacket(
|
| if (incoming_rtp_packet[header.headerLength] & 0x80) {
|
| // f bit set in RED header
|
| REDHeaderLength = 4;
|
| - if (payload_data_length < REDHeaderLength) {
|
| + if (payload_data_length < REDHeaderLength + 1u) {
|
| LOG(LS_WARNING) << "Corrupt/truncated FEC packet.";
|
| return -1;
|
| }
|
| @@ -128,7 +128,9 @@ int32_t FecReceiverImpl::AddReceivedRedPacket(
|
| LOG(LS_WARNING) << "More than 2 blocks in packet not supported.";
|
| return -1;
|
| }
|
| - if (blockLength > payload_data_length - REDHeaderLength) {
|
| + // Check that the packet is long enough to contain data in the following
|
| + // block.
|
| + if (blockLength > payload_data_length - (REDHeaderLength + 1)) {
|
| LOG(LS_WARNING) << "Block length longer than packet.";
|
| return -1;
|
| }
|
|
|