After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 775480 - ssaparse: memory leak in gst_ssa_parse_setcaps
ssaparse: memory leak in gst_ssa_parse_setcaps
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 1.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-12-01 16:13 UTC by Hanno Böck
Modified: 2016-12-09 15:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Hanno Böck 2016-12-01 16:13:56 UTC
File:
http://samples.mplayerhq.hu/Matroska/matrix/Matrix.Reloaded.Trailer-RV9-Karl640x432_HE_AAC_subtitled_chapters.mkv

The stack trace contains code from both gst-plugins-good/base:

==18571==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 7069 byte(s) in 9 object(s) allocated from:
    #0 0x4d4e38 in malloc (/usr/local/bin/gst-discoverer-1.0+0x4d4e38)
    #1 0x7f41cdbf9aa8 in g_malloc (/usr/lib64/libglib-2.0.so.0+0x4faa8)
    #2 0x7f41cdc13677 in g_strndup (/usr/lib64/libglib-2.0.so.0+0x69677)
    #3 0x7f41bee0cc02 in gst_ssa_parse_setcaps /f/gstreamer/gst-plugins-base/gst/subparse/gstssaparse.c:198:16
    #4 0x7f41bee0cc02 in gst_ssa_parse_sink_event /f/gstreamer/gst-plugins-base/gst/subparse/gstssaparse.c:130
    #5 0x7f41ce96870d in gst_pad_send_event_unchecked /f/gstreamer/gstreamer/gst/gstpad.c:5609:14
    #6 0x7f41ce9463cd in gst_pad_send_event /f/gstreamer/gstreamer/gst/gstpad.c:5779:7
    #7 0x7f41c34f3c2d in send_sticky_event /f/gstreamer/gst-plugins-base/gst/playback/gstdecodebin2.c:1961:9
    #8 0x7f41ce96b409 in foreach_dispatch_function /f/gstreamer/gstreamer/gst/gstpad.c:5878:11
    #9 0x7f41ce94fd44 in events_foreach /f/gstreamer/gstreamer/gst/gstpad.c:603:11
    #10 0x7f41ce96b215 in gst_pad_sticky_events_foreach /f/gstreamer/gstreamer/gst/gstpad.c:5909:3
    #11 0x7f41c34df9ee in send_sticky_events /f/gstreamer/gst-plugins-base/gst/playback/gstdecodebin2.c:1976:3
    #12 0x7f41c34df9ee in connect_pad /f/gstreamer/gst-plugins-base/gst/playback/gstdecodebin2.c:2496
    #13 0x7f41c34df9ee in analyze_new_pad /f/gstreamer/gst-plugins-base/gst/playback/gstdecodebin2.c:1791
    #14 0x7f41c34f1b80 in pad_added_cb /f/gstreamer/gst-plugins-base/gst/playback/gstdecodebin2.c:2929:7
    #15 0x7f41ccede01f in ffi_call_unix64 (/usr/lib64/libffi.so.6+0x601f)
    #16 0x7f41ccedda87 in ffi_call (/usr/lib64/libffi.so.6+0x5a87)
    #17 0x7f41cdece7e3 in g_cclosure_marshal_generic (/usr/lib64/libgobject-2.0.so.0+0x107e3)
    #18 0x7f41cdecdfd4 in g_closure_invoke (/usr/lib64/libgobject-2.0.so.0+0xffd4)
    #19 0x7f41cdee0320  (/usr/lib64/libgobject-2.0.so.0+0x22320)
    #20 0x7f41cdee8dd4 in g_signal_emit_valist (/usr/lib64/libgobject-2.0.so.0+0x2add4)
    #21 0x7f41cdee9036 in g_signal_emit (/usr/lib64/libgobject-2.0.so.0+0x2b036)
    #22 0x7f41ce8d97bb in gst_element_add_pad /f/gstreamer/gstreamer/gst/gstelement.c:713:3
    #23 0x7f41c178a45b in gst_matroska_demux_add_stream /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:1350:3
    #24 0x7f41c176c0d6 in gst_matroska_demux_parse_tracks /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:2520:15
    #25 0x7f41c176c0d6 in gst_matroska_demux_parse_id /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:4422
    #26 0x7f41c1798376 in gst_matroska_demux_parse_contents_seekentry /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:4042:15
    #27 0x7f41c176b8a7 in gst_matroska_demux_parse_contents /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:4091:15
    #28 0x7f41c176b8a7 in gst_matroska_demux_parse_id /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:4544
    #29 0x7f41c1763f1a in gst_matroska_demux_loop /f/gstreamer/gst-plugins-good/gst/matroska/matroska-demux.c:4683:9
    #30 0x7f41cea1f5d3 in gst_task_func /f/gstreamer/gstreamer/gst/gsttask.c:334:5
    #31 0x7f41cdc1c627  (/usr/lib64/libglib-2.0.so.0+0x72627)
    #32 0x7f41cdc1bc94  (/usr/lib64/libglib-2.0.so.0+0x71c94)
    #33 0x7f41cd698453 in start_thread (/lib64/libpthread.so.0+0x7453)
    #34 0x7f41cd1c85dc in clone (/lib64/libc.so.6+0xe75dc)

SUMMARY: AddressSanitizer: 7069 byte(s) leaked in 9 allocation(s).
Comment 1 Sebastian Dröge (slomo) 2016-12-01 17:58:30 UTC
commit d452ad0ecaba7add0ea68861f7a73ba7bc82d3cb
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Thu Dec 1 19:57:47 2016 +0200

    ssaparse: Free initialization section before storing the next one
    
    If getting multiple caps events.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=775480
Comment 2 Hanno Böck 2016-12-01 20:39:42 UTC
I think this fix is incomplete, I'm still seeing this with the latest git code.
Comment 3 Sebastian Dröge (slomo) 2016-12-01 21:00:12 UTC
I can't :) Can you get a new backtrace from lsan?
Comment 4 Hanno Böck 2016-12-09 15:02:02 UTC
I assume I made a mistake when I claimed it's unfixed, I can't reproduce it any more.