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.
This commit is contained in:
Tommi Myöhänen 2007-11-15 17:35:18 +00:00 committed by Wim Taymans
parent 04ee765563
commit 624497b1c5
2 changed files with 18 additions and 2 deletions

View file

@ -1,3 +1,11 @@
2007-11-15 Wim Taymans <wim.taymans@gmail.com>
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.
2007-11-15 Wim Taymans <wim.taymans@gmail.com> 2007-11-15 Wim Taymans <wim.taymans@gmail.com>
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com> Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>

View file

@ -692,8 +692,6 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream)
pad = gst_element_get_pad (udpsrc, "src"); pad = gst_element_get_pad (udpsrc, "src");
if (stream->channelpad[i]) { if (stream->channelpad[i]) {
gst_pad_unlink (pad, 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); 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]); gst_object_unref (stream->udpsrc[i]);
stream->udpsrc[i] = NULL; stream->udpsrc[i] = NULL;
} }
if (stream->channelpad[i]) {
gst_object_unref (stream->channelpad[i]);
stream->channelpad[i] = NULL;
}
} }
if (stream->udpsink) { if (stream->udpsink) {
gst_element_set_state (stream->udpsink, GST_STATE_NULL); gst_element_set_state (stream->udpsink, GST_STATE_NULL);
@ -716,6 +718,10 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream)
} }
stream->srcpad = NULL; stream->srcpad = NULL;
} }
if (stream->rtcppad) {
gst_object_unref (stream->rtcppad);
stream->rtcppad = NULL;
}
g_free (stream); g_free (stream);
} }
@ -1875,6 +1881,8 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
/* and link */ /* and link */
if (pad) if (pad)
gst_pad_link (pad, stream->rtcppad); gst_pad_link (pad, stream->rtcppad);
gst_object_unref (template);
} }
return TRUE; return TRUE;
} }