Check for valid transport before setting criteria.

Bug: chromium:1295469
Change-Id: Ib797cf1baf275e3ae1ce167cd4bfbc1161652000
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251620
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35981}
This commit is contained in:
Tommi 2022-02-11 18:09:31 +01:00 committed by WebRTC LUCI CQ
parent 06c87a1664
commit 075db39756

View File

@ -496,6 +496,12 @@ bool BaseChannel::RegisterRtpDemuxerSink_w() {
bool ret = network_thread_->Invoke<bool>( bool ret = network_thread_->Invoke<bool>(
RTC_FROM_HERE, [this, demuxer_criteria = demuxer_criteria_] { RTC_FROM_HERE, [this, demuxer_criteria = demuxer_criteria_] {
RTC_DCHECK_RUN_ON(network_thread()); RTC_DCHECK_RUN_ON(network_thread());
if (!rtp_transport_) {
// Transport was disconnected before attempting to update the
// criteria. This can happen while setting the remote description.
// See chromium:1295469 for an example.
return false;
}
// Note that RegisterRtpDemuxerSink first unregisters the sink if // Note that RegisterRtpDemuxerSink first unregisters the sink if
// already registered. So this will change the state of the class // already registered. So this will change the state of the class
// whether the call succeeds or not. // whether the call succeeds or not.