summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorTommi Myöhänen <ext-tommi.myohanen@nokia.com>2007-11-15 17:35:18 +0000
committerWim Taymans <wim.taymans@gmail.com>2007-11-15 17:35:18 +0000
commit624497b1c586d3c14fbda91e56edfddbf83e9293 (patch)
tree5d03b0244e5db59b6057ee6480c1e9151796aaf8 /gst
parent04ee7655639defdc3184aaad9f00e0877fe74dc8 (diff)
gst/rtsp/gstrtspsrc.c: Fix 3 pad leaks. Fixes #496983.
Original commit message from CVS: Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com> * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_free), (gst_rtspsrc_stream_configure_tcp): Fix 3 pad leaks. Fixes #496983.
Diffstat (limited to 'gst')
-rw-r--r--gst/rtsp/gstrtspsrc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 98d1c597..aa13ad12 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -692,8 +692,6 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream)
pad = gst_element_get_pad (udpsrc, "src");
if (stream->channelpad[i]) {
gst_pad_unlink (pad, stream->channelpad[i]);
- gst_object_unref (stream->channelpad[i]);
- stream->channelpad[i] = NULL;
}
gst_element_set_state (udpsrc, GST_STATE_NULL);
@@ -701,6 +699,10 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream)
gst_object_unref (stream->udpsrc[i]);
stream->udpsrc[i] = NULL;
}
+ if (stream->channelpad[i]) {
+ gst_object_unref (stream->channelpad[i]);
+ stream->channelpad[i] = NULL;
+ }
}
if (stream->udpsink) {
gst_element_set_state (stream->udpsink, GST_STATE_NULL);
@@ -716,6 +718,10 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream)
}
stream->srcpad = NULL;
}
+ if (stream->rtcppad) {
+ gst_object_unref (stream->rtcppad);
+ stream->rtcppad = NULL;
+ }
g_free (stream);
}
@@ -1875,6 +1881,8 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
/* and link */
if (pad)
gst_pad_link (pad, stream->rtcppad);
+
+ gst_object_unref (template);
}
return TRUE;
}