[Bug 777533] New: tsdemux: memory leak in create_pad_for_stream / gst_static_pad_template_get

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Jan 20 12:21:22 UTC 2017


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

            Bug ID: 777533
           Summary: tsdemux: memory leak in create_pad_for_stream /
                    gst_static_pad_template_get
    Classification: Platform
           Product: GStreamer
           Version: unspecified
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: hanno at hboeck.de
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

file:
https://samples.mplayerhq.hu/opus/opus.ts

Note: you get much more meaningful stack traces with
ASAN_OPTIONS="fast_unwind_on_malloc=0" and G_SLICE=always-malloc.

asan trace:
==3448==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 144 byte(s) in 1 object(s) allocated from:
    #0 0x4cbbb8 in malloc (/usr/bin/gst-discoverer-1.0+0x4cbbb8)
    #1 0x7f1581fcd768 in g_malloc
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gmem.c:94
    #2 0x7f1581fe54d2 in g_slice_alloc
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gslice.c:1025
    #3 0x7f1581fe5afd in g_slice_alloc0
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gslice.c:1051
    #4 0x7f15822c3743 in g_type_create_instance
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gtype.c:1848
    #5 0x7f15822a5daa in g_object_new_internal
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1783
    #6 0x7f15822a7bad in g_object_new_valist
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:2042
    #7 0x7f15822a7e33 in g_object_new
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1626
    #8 0x7f1582d4628a in gst_static_pad_template_get
/f/gstreamer/gstreamer/gst/gstpadtemplate.c:300:9
    #9 0x7f1575afe5e7 in create_pad_for_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1369:28
    #10 0x7f1575afe5e7 in gst_ts_demux_stream_added
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1656
    #11 0x7f1575aebfb8 in mpegts_base_program_add_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:564:9
    #12 0x7f1575ae8cf0 in mpegts_base_activate_program
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:920:5
    #13 0x7f1575ae8cf0 in mpegts_base_apply_pmt
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1125
    #14 0x7f1575ae8cf0 in mpegts_base_handle_psi
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1164
    #15 0x7f1575ae3a4a in mpegts_base_chain
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1423:9
    #16 0x7f1575ae0367 in mpegts_base_loop
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1591:13
    #17 0x7f1582df2973 in gst_task_func
/f/gstreamer/gstreamer/gst/gsttask.c:334:5
    #18 0x7f1581fefb2d in g_thread_pool_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthreadpool.c:307
    #19 0x7f1581fef154 in g_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthread.c:784
    #20 0x7f1581a6d453 in start_thread (/lib64/libpthread.so.0+0x7453)
    #21 0x7f158159d5dc in clone (/lib64/libc.so.6+0xe75dc)

Direct leak of 11 byte(s) in 1 object(s) allocated from:
    #0 0x4cbbb8 in malloc (/usr/bin/gst-discoverer-1.0+0x4cbbb8)
    #1 0x7f15815ad697 in __vasprintf_chk (/lib64/libc.so.6+0xf7697)
    #2 0x7f158200b608 in vasprintf /usr/include/bits/stdio2.h:210
    #3 0x7f158200b608 in g_vasprintf
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gprintf.c:316
    #4 0x7f1581fe717f in g_strdup_vprintf
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gstrfuncs.c:514
    #5 0x7f1581fe721b in g_strdup_printf
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gstrfuncs.c:540
    #6 0x7f1575afe61b in create_pad_for_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1370:24
    #7 0x7f1575afe61b in gst_ts_demux_stream_added
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1656
    #8 0x7f1575aebfb8 in mpegts_base_program_add_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:564:9
    #9 0x7f1575ae8cf0 in mpegts_base_activate_program
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:920:5
    #10 0x7f1575ae8cf0 in mpegts_base_apply_pmt
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1125
    #11 0x7f1575ae8cf0 in mpegts_base_handle_psi
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1164
    #12 0x7f1575ae3a4a in mpegts_base_chain
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1423:9
    #13 0x7f1575ae0367 in mpegts_base_loop
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1591:13
    #14 0x7f1582df2973 in gst_task_func
/f/gstreamer/gstreamer/gst/gsttask.c:334:5
    #15 0x7f1581fefb2d in g_thread_pool_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthreadpool.c:307
    #16 0x7f1581fef154 in g_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthread.c:784
    #17 0x7f1581a6d453 in start_thread (/lib64/libpthread.so.0+0x7453)
    #18 0x7f158159d5dc in clone (/lib64/libc.so.6+0xe75dc)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x4cbbb8 in malloc (/usr/bin/gst-discoverer-1.0+0x4cbbb8)
    #1 0x7f1581fcd768 in g_malloc
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gmem.c:94
    #2 0x7f1581fe701e in g_strdup
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gstrfuncs.c:363
    #3 0x7f1582c030b8 in gst_object_set_name
/f/gstreamer/gstreamer/gst/gstobject.c:614:20
    #4 0x7f1582c0a3da in gst_object_set_property
/f/gstreamer/gstreamer/gst/gstobject.c:916:7
    #5 0x7f15822a6122 in object_set_property
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1423
    #6 0x7f15822a6122 in g_object_new_internal
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1817
    #7 0x7f15822a7bad in g_object_new_valist
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:2042
    #8 0x7f15822a7e33 in g_object_new
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1626
    #9 0x7f1582d4628a in gst_static_pad_template_get
/f/gstreamer/gstreamer/gst/gstpadtemplate.c:300:9
    #10 0x7f1575afe5e7 in create_pad_for_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1369:28
    #11 0x7f1575afe5e7 in gst_ts_demux_stream_added
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1656
    #12 0x7f1575aebfb8 in mpegts_base_program_add_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:564:9
    #13 0x7f1575ae8cf0 in mpegts_base_activate_program
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:920:5
    #14 0x7f1575ae8cf0 in mpegts_base_apply_pmt
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1125
    #15 0x7f1575ae8cf0 in mpegts_base_handle_psi
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1164
    #16 0x7f1575ae3a4a in mpegts_base_chain
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1423:9
    #17 0x7f1575ae0367 in mpegts_base_loop
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1591:13
    #18 0x7f1582df2973 in gst_task_func
/f/gstreamer/gstreamer/gst/gsttask.c:334:5
    #19 0x7f1581fefb2d in g_thread_pool_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthreadpool.c:307
    #20 0x7f1581fef154 in g_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthread.c:784
    #21 0x7f1581a6d453 in start_thread (/lib64/libpthread.so.0+0x7453)
    #22 0x7f158159d5dc in clone (/lib64/libc.so.6+0xe75dc)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x4cbbb8 in malloc (/usr/bin/gst-discoverer-1.0+0x4cbbb8)
    #1 0x7f1581fcd768 in g_malloc
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gmem.c:94
    #2 0x7f1581fe701e in g_strdup
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gstrfuncs.c:363
    #3 0x7f1582d474a0 in gst_pad_template_set_property
/f/gstreamer/gstreamer/gst/gstpadtemplate.c:406:49
    #4 0x7f15822a6122 in object_set_property
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1423
    #5 0x7f15822a6122 in g_object_new_internal
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1817
    #6 0x7f15822a7bad in g_object_new_valist
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:2042
    #7 0x7f15822a7e33 in g_object_new
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/gobject/gobject.c:1626
    #8 0x7f1582d4628a in gst_static_pad_template_get
/f/gstreamer/gstreamer/gst/gstpadtemplate.c:300:9
    #9 0x7f1575afe5e7 in create_pad_for_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1369:28
    #10 0x7f1575afe5e7 in gst_ts_demux_stream_added
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c:1656
    #11 0x7f1575aebfb8 in mpegts_base_program_add_stream
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:564:9
    #12 0x7f1575ae8cf0 in mpegts_base_activate_program
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:920:5
    #13 0x7f1575ae8cf0 in mpegts_base_apply_pmt
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1125
    #14 0x7f1575ae8cf0 in mpegts_base_handle_psi
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1164
    #15 0x7f1575ae3a4a in mpegts_base_chain
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1423:9
    #16 0x7f1575ae0367 in mpegts_base_loop
/f/gstreamer/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c:1591:13
    #17 0x7f1582df2973 in gst_task_func
/f/gstreamer/gstreamer/gst/gsttask.c:334:5
    #18 0x7f1581fefb2d in g_thread_pool_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthreadpool.c:307
    #19 0x7f1581fef154 in g_thread_proxy
/var/tmp/portage/dev-libs/glib-2.50.2/work/glib-2.50.2/glib/gthread.c:784
    #20 0x7f1581a6d453 in start_thread (/lib64/libpthread.so.0+0x7453)
    #21 0x7f158159d5dc in clone (/lib64/libc.so.6+0xe75dc)

SUMMARY: AddressSanitizer: 187 byte(s) leaked in 4 allocation(s).

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list