Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(298)

Issue 1870573004: Fixed rtcp rpsi parsing of invalid packets. (Closed)

Created:
4 years, 8 months ago by danilchap
Modified:
4 years, 8 months ago
Reviewers:
åsapersson
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, zhuangzesen_agora.io, danilchap, stefan-webrtc, mflodman, pbos-webrtc
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Fixed rtcp rpsi parsing of invalid packets. Parsing is done in one Iterate instead of two preventing handling two half-valid (invalid) rpsi packets as one valid, making test parser calculate rpsi packet once instead of twice. Added check padding bits doesn't exceed native bit string length. Marking rpsi received moved after it is validated. BUG=600977

Patch Set 1 #

Patch Set 2 : removed unrelated comment #

Total comments: 8

Patch Set 3 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+75 lines, -46 lines) Patch
M webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc View 1 chunk +18 lines, -21 lines 0 comments Download
M webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc View 1 2 2 chunks +45 lines, -0 lines 0 comments Download
M webrtc/modules/rtp_rtcp/source/rtcp_sender_unittest.cc View 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/modules/rtp_rtcp/source/rtcp_utility.h View 1 2 2 chunks +1 line, -2 lines 0 comments Download
M webrtc/modules/rtp_rtcp/source/rtcp_utility.cc View 1 2 5 chunks +10 lines, -23 lines 0 comments Download

Messages

Total messages: 4 (1 generated)
danilchap
4 years, 8 months ago (2016-04-07 12:31:33 UTC) #2
åsapersson
https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc File webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc (left): https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc#oldcode1104 webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc:1104: if (pktType == RTCPPacketTypes::kPsfbRpsi) { kPsfbRpsiItem? https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc File webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc ...
4 years, 8 months ago (2016-04-11 09:22:55 UTC) #3
danilchap
4 years, 8 months ago (2016-04-11 11:00:31 UTC) #4
https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
File webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc (left):

https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc:1104: if (pktType ==
RTCPPacketTypes::kPsfbRpsi) {
On 2016/04/11 09:22:55, åsapersson wrote:
> kPsfbRpsiItem?

For neighbor packets 'Item' suffix means subpacket, FCI item.
For Rpsi packet this notion removed (because valid packet has exactly one FCI
item, it make little sense to handle rpsi item without rpsi)

https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
File webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc (right):

https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc:167: 
On 2016/04/11 09:22:55, åsapersson wrote:
> Would also be good to tests a valid rpsi packet.

Done.

https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc:192:
TEST_F(RtcpReceiverTest, TooHalfValidRpsiAreIgnored) {
On 2016/04/11 09:22:55, åsapersson wrote:
> Too->Two

oops, Done

https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
File webrtc/modules/rtp_rtcp/source/rtcp_utility.cc (left):

https://codereview.webrtc.org/1870573004/diff/20001/webrtc/modules/rtp_rtcp/s...
webrtc/modules/rtp_rtcp/source/rtcp_utility.cc:1337: _packetType =
RTCPPacketTypes::kPsfbRpsi;
On 2016/04/11 09:22:55, åsapersson wrote:
> Should the packet type be set to kPsfbRpsiItem here?
> (And remove changes above?)

It is set to kPsfbRpsi in the very end of the function, after validating padding
size.
To Indicate parsing single item finish parsing packet, function renamed to
ParseRPSI.
Either way (valid and invalid) parser stay in the 'TopLevel' state and doesn't
need to enter/leave intermediate state.

Powered by Google App Engine
This is Rietveld 408576698