Clear old decoders after recreating the receiver. Prevents UAF when switching decoder capabilities and the previously-supported decoder is currently being received on. BUG=chromium:565967 R=stefan@webrtc.org Review URL: https://codereview.webrtc.org/1490233010 . Cr-Commit-Position: refs/heads/master@{#10898}
diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc index 308b68b..844b118 100644 --- a/talk/media/webrtc/webrtcvideoengine2.cc +++ b/talk/media/webrtc/webrtcvideoengine2.cc
@@ -2376,10 +2376,10 @@ config_.rtp.nack.rtp_history_ms = HasNack(recv_codecs.begin()->codec) ? kNackHistoryMs : 0; - ClearDecoders(&old_decoders); LOG(LS_INFO) << "RecreateWebRtcStream (recv) because of SetRecvCodecs: " << CodecSettingsVectorToString(recv_codecs); RecreateWebRtcStream(); + ClearDecoders(&old_decoders); } void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetLocalSsrc(