diff --git a/subprojects/gst-plugins-bad/gst/sdp/gstsdpdemux.c b/subprojects/gst-plugins-bad/gst/sdp/gstsdpdemux.c index a97dd54110..cc5baa6c4d 100644 --- a/subprojects/gst-plugins-bad/gst/sdp/gstsdpdemux.c +++ b/subprojects/gst-plugins-bad/gst/sdp/gstsdpdemux.c @@ -536,6 +536,9 @@ new_session_pad (GstElement * session, GstPad * pad, GstSDPDemux * demux) if (stream == NULL) goto unknown_stream; + if (stream->srcpad) + goto unexpected_pad; + stream->ssrc = ssrc; /* no need for a timeout anymore now */ @@ -576,6 +579,13 @@ new_session_pad (GstElement * session, GstPad * pad, GstSDPDemux * demux) return; /* ERRORS */ +unexpected_pad: + { + GST_DEBUG_OBJECT (demux, "ignoring unexpected session pad"); + GST_SDP_STREAM_UNLOCK (demux); + g_free (name); + return; + } unknown_stream: { GST_DEBUG_OBJECT (demux, "ignoring unknown stream");