dashdemux: Fix leak in gst_dash_demux_stream_update_fragment_info()
authorFlorin Apostol <florin.apostol@oregan.net>
Mon, 3 Aug 2015 15:57:31 +0000 (16:57 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 5 Aug 2015 22:24:28 +0000 (01:24 +0300)
The gst_dash_demux_stream_update_fragment_info function could call
gst_dash_demux_stream_update_headers_info function twice. The
gst_dash_demux_stream_update_headers_info function will set header_uri and
index_uri to some newly allocated strings. The values set by the first call of
gst_dash_demux_stream_update_headers_info will leak when the function is
called for a second time.

The solution is to call gst_adaptive_demux_stream_fragment_clear before the
second call of gst_dash_demux_stream_update_headers_info

https://bugzilla.gnome.org/show_bug.cgi?id=753188

ext/dash/gstdashdemux.c

index 17df50f..cfa8ffa 100644 (file)
@@ -912,6 +912,7 @@ gst_dash_demux_stream_update_fragment_info (GstAdaptiveDemuxStream * stream)
   if (gst_mpd_client_get_next_fragment_timestamp (dashdemux->client,
           dashstream->index, &ts)) {
     if (GST_ADAPTIVE_DEMUX_STREAM_NEED_HEADER (stream)) {
+      gst_adaptive_demux_stream_fragment_clear (&stream->fragment);
       gst_dash_demux_stream_update_headers_info (stream);
     }