GNOME Bugzilla – Bug 762219
rtpsession: don't act on suspicious BYE RTCP
Last modified: 2016-05-25 08:09:44 UTC
Created attachment 321539 [details] [review] test and fix Some endpoints (like Tandberg E20) can send BYE packet containing our internal SSRC. I this case we would detect SSRC collision and get rid of the source at some point. But because we are still sending packets with that SSRC the source will be recreated immediately. This brand new internal source will not have some variables incorrectly set in its state. For example 'seqnum-base` and `clock-rate` values will be -1. The fix is not to act on BYE RTCP if it contains internal or unknown SSRC.
Created attachment 327922 [details] [review] rtpsession: don't act on suspicious BYE RTCP Some endpoints (like Tandberg E20) can send BYE packet containing our internal SSRC. I this case we would detect SSRC collision and get rid of the source at some point. But because we are still sending packets with that SSRC the source will be recreated immediately. This brand new internal source will not have some variables incorrectly set in its state. For example 'seqnum-base` and `clock-rate` values will be -1. The fix is not to act on BYE RTCP if it contains internal or unknown SSRC.
Review of attachment 327922 [details] [review]: ::: tests/check/elements/rtpsession.c @@ +678,3 @@ + g_value_get_boxed (gst_structure_get_value (stats, "source-stats")); + g_assert (stats_arr != NULL); + fail_unless (stats_arr->n_values >= 1); I changed this to go through the array, there are > 1 most of the time it seems @@ +759,3 @@ + g_assert (gst_test_clock_crank (testclock)); + gst_buffer_unref (gst_harness_pull (h_rtcp)); + fail_unless (cb_called); This often fails
Created attachment 327958 [details] [review] rtpsession: don't act on suspicious BYE RTCP Thanks for the review @slomo. The test should be fixed now.
Attachment 327958 [details] pushed as ee7e80d - rtpsession: don't act on suspicious BYE RTCP