From 5b86c66e8a1b9b62e0f6be2d97b3984bdc8ec48e Mon Sep 17 00:00:00 2001 From: Patrick Radizi Date: Wed, 22 Apr 2009 15:24:55 +0200 Subject: rtspsrc: fix some more pad leaks Fix some pad leaks. See #577318. --- gst/rtsp/gstrtspsrc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gst/rtsp') diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index b515417d..f575c65b 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -2048,6 +2048,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream, /* allocate pads for sending the channel data into the manager */ pad0 = gst_pad_new_from_template (template, "internalsrc0"); gst_pad_link (pad0, stream->channelpad[0]); + gst_object_unref (stream->channelpad[0]); stream->channelpad[0] = pad0; gst_pad_set_query_function (pad0, gst_rtspsrc_handle_internal_src_query); gst_pad_set_element_private (pad0, src); @@ -2058,6 +2059,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream, * manager. */ pad1 = gst_pad_new_from_template (template, "internalsrc1"); gst_pad_link (pad1, stream->channelpad[1]); + gst_object_unref (stream->channelpad[1]); stream->channelpad[1] = pad1; gst_pad_set_active (pad1, TRUE); } @@ -2080,8 +2082,10 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream, g_free (name); /* and link */ - if (pad) + if (pad) { gst_pad_link (pad, stream->rtcppad); + gst_object_unref (pad); + } gst_object_unref (template); } @@ -2328,8 +2332,10 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src, g_free (name); /* and link */ - if (pad) + if (pad) { gst_pad_link (pad, stream->rtcppad); + gst_object_unref (pad); + } } return TRUE; -- cgit