webrtcbin: Stop transceivers update after first SDP error on data channel
authorPhilippe Normand <philn@igalia.com>
Thu, 24 Jun 2021 11:28:11 +0000 (12:28 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 25 Jun 2021 05:12:37 +0000 (05:12 +0000)
When invalid SDP is supplied, _update_data_channel_from_sdp_media() sets the
GError, so it is invalid to continue any further SDP processing, we have to exit
early when the first error is raised.

This change is similar to the one applied in
064428cb34572fa1a018ebbaba6925967ba99dc0.
See also #1595

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2356>

ext/webrtc/gstwebrtcbin.c

index 38d556f..beadefd 100644 (file)
@@ -4872,6 +4872,8 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
       } else if (_message_media_is_datachannel (sdp->sdp, i)) {
         _update_data_channel_from_sdp_media (webrtc, sdp->sdp, i, stream,
             error);
+        if (error && *error)
+          goto done;
       } else {
         GST_ERROR_OBJECT (webrtc, "Unknown media type in SDP at index %u", i);
       }