From 301fc8a712273e16eabd3647ccf6a43a871e3ada Mon Sep 17 00:00:00 2001 From: Patrick Radizi Date: Wed, 13 May 2009 11:50:22 +0200 Subject: [PATCH] rtspsrc: fix memory leak of messages Free messages correctly. Fixes #577318 --- gst/rtsp/gstrtspsrc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index b7f5777..82bbfd1 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -2951,6 +2951,7 @@ server_eof: GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), ("The server closed the connection.")); src->connected = FALSE; + gst_rtsp_message_unset (&message); return GST_FLOW_UNEXPECTED; } interrupt: @@ -3001,6 +3002,7 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src) { gboolean restart = FALSE; GstRTSPResult res; + GstRTSPMessage message = { 0 }; GST_OBJECT_LOCK (src); if (src->loop_cmd == CMD_STOP) @@ -3010,7 +3012,6 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src) GST_OBJECT_UNLOCK (src); while (TRUE) { - GstRTSPMessage message = { 0 }; GTimeVal tv_timeout; /* get the next timeout interval */ @@ -3161,6 +3162,7 @@ handle_request_failed: GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), ("Could not handle server message. (%s)", str)); g_free (str); + gst_rtsp_message_unset (&message); return GST_FLOW_ERROR; } connect_error: @@ -3197,6 +3199,7 @@ server_eof: GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), ("The server closed the connection.")); src->connected = FALSE; + gst_rtsp_message_unset (&message); return GST_FLOW_UNEXPECTED; } } @@ -3647,6 +3650,7 @@ receive_error: handle_request_failed: { /* ERROR was posted */ + gst_rtsp_message_unset (response); return res; } server_eof: @@ -3654,6 +3658,7 @@ server_eof: GST_DEBUG_OBJECT (src, "we got an eof from the server"); GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), ("The server closed the connection.")); + gst_rtsp_message_unset (response); return GST_FLOW_UNEXPECTED; } } -- 2.7.4