Bug#752623: memory leak in the "gst-plugins-bad1.0-1.2.4" package

Sebastian Dröge slomo at debian.org
Wed Jun 25 14:04:51 UTC 2014


Hi Jan,

I've forwarded this upstream and there was a potential fix now:
https://bugzilla.gnome.org/show_bug.cgi?id=732227

Can you check if that solves your memory leaks? And if not provide a
testcase that reproduces the problem?

Thanks!

On Mi, 2014-06-25 at 11:06 +0200, Jan Karabel wrote:
> Package: gst-plugins-bad1.0
> Version: 1.2.4 wheezy-backports
> 
> 
> Software for recording TV from DVB stick, using
> gst-plugins-bad1.0-1.2.4 package from "wheezy-backports" repository,
> eats in couple of days all memory available and fails. Leak seems to
> be present till current 1.3.x versions.
> Problem is in the "libgstmpegtsdemux.so" library - source file
> "mpegtspacketizer.c" is using "g_malloc" without corresponding
> "g_free".
> 
> 
> 
> Valgrind output:
> 
> ==1601== 2,940,057 bytes in 729 blocks are definitely lost in loss
> record 2,549 of 2,549
> ==1601==    at 0x4028308: malloc (vg_replace_malloc.c:263)
> ==1601==    by 0x42FB42A: ??? (in /lib/i386-linux-gnu/libglib-2.0.so.0.3200.4)
> ==1601==    by 0x42FB7A2: g_malloc (in
> /lib/i386-linux-gnu/libglib-2.0.so.0.3200.4)
> ==1601==    by 0x79612F7: mpegts_packetizer_push_section
> (mpegtspacketizer.c:1154)
> ==1601==    by 0x79688D7: mpegts_base_chain (mpegtsbase.c:1179)
> ==1601==    by 0x485FBDB: gst_pad_push_data (gstpad.c:3827)
> ==1601==    by 0x792A467: gst_queue_loop (gstqueue.c:1118)
> ==1601==    by 0x48937BF: gst_task_func (gsttask.c:317)
> ==1601==    by 0x4894A17: default_func (gsttaskpool.c:68)
> ==1601==    by 0x431A887: ??? (in /lib/i386-linux-gnu/libglib-2.0.so.0.3200.4)
> ==1601==    by 0x4319EB2: ??? (in /lib/i386-linux-gnu/libglib-2.0.so.0.3200.4)
> ==1601==    by 0x4B0BD4D: clone (clone.S:130)
> 
> 
> 
> Quick and dirty fix, successfully tested on 1.2.4 version (use of
> "mpegts_packetizer_stream_free" would be probably better):
> **************************************************************
> --- a/gst/mpegtsdemux/mpegtspacketizer.c        2014-02-14
> 12:53:21.000000000 +0100
> +++ b/gst/mpegtsdemux/mpegtspacketizer.c        2014-06-25
> 00:24:25.118573067 +0200
> @@ -957,6 +957,8 @@
>      packetizer->streams[packet->pid] = stream;
>    }
> 
> +  stream->section_data = NULL;
> +
>    GST_MEMDUMP ("Full packet data", packet->data,
>        packet->data_end - packet->data);
> 
> @@ -1197,11 +1199,17 @@
>    goto accumulate_data;
> 
>  out:
> +
> +  if(stream != NULL && stream->section_data != NULL)
> +  {
> +         g_free(stream->section_data);
> +         stream->section_data = NULL;
> +  }
> +
>    packet->data = data;
>    *remaining = others;
> 
>    GST_DEBUG ("result: %p", res);
> -
>    return res;
>  }
> **************************************************************
> 
> System is an up-to-date "Debian Wheezy" distribution on "3.15.1" kernel.
> _______________________________________________
> pkg-gstreamer-maintainers mailing list
> pkg-gstreamer-maintainers at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-gstreamer-maintainers


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-gstreamer-maintainers/attachments/20140625/e785d6ae/attachment.sig>


More information about the pkg-gstreamer-maintainers mailing list