[Bug 765005] New: mpegtsmux: memory leak caused by pad_data->language

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Apr 13 17:28:36 UTC 2016


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

            Bug ID: 765005
           Summary: mpegtsmux: memory leak caused by pad_data->language
    Classification: Platform
           Product: GStreamer
           Version: 1.6.1
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: memento1987 at interia.pl
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

I noticed small memory leak caused by pad_data->language in mpegtsmux in the
following line:

          GST_DEBUG_OBJECT (pad, "Setting language to '%s'", lang_code);
          pad_data->language = g_strdup (lang_code);

I added to WARNING messages to confirm that g_strdup is invoked more times that
g_free(pad_data->language) in the following places:

1)
-         GST_DEBUG_OBJECT (pad, "Setting language to '%s'", lang_code);
+         GST_WARNING_OBJECT (pad, "Setting language to '%s'", lang_code);
          pad_data->language = g_strdup (lang_code);

2)
  if (pad_data->language) {
+   GST_WARNING(releasing pad_data->language);
    g_free (pad_data->language);
    pad_data->language = NULL;
  }


And got following output in logs:

0:00:10.753865376  9671      0x9cd96c0 WARN               mpegtsmux
mpegtsmux.c:356:mpegtsmux_pad_reset: releasing pad_data->language
0:00:10.755888141  9671      0x9cd96c0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event
<splitmuxsink_rabbitmq_mpegtsmux_4287:sink_66> Setting language to 'eng'
0:00:10.775769785  9671      0x9cd96c0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4287:sink_66>
Setting language to 'eng'
0:00:11.211465160  9671      0x9b7e1b0 WARN               mpegtsmux
mpegtsmux.c:356:mpegtsmux_pad_reset: releasing pad_data->language
0:00:11.213284822  9671      0x9b7e1b0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4352:sink_66>
Setting language to 'eng'
0:00:11.220769453  9671      0x9b7fb80 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4352:sink_66>
Setting language to 'eng'
0:00:11.408445647  9671      0x9ce37b0 WARN               mpegtsmux
mpegtsmux.c:356:mpegtsmux_pad_reset: releasing pad_data->language
0:00:11.411094371  9671      0x9ce37b0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4170:sink_66>
Setting language to 'eng'
0:00:11.428846042  9671      0x9ce37b0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4170:sink_66>
Setting language to 'eng'
0:00:11.622453320  9671      0x9b04150 WARN               mpegtsmux
mpegtsmux.c:356:mpegtsmux_pad_reset: releasing pad_data->language
0:00:11.624472643  9671      0x9b04150 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4736:sink_66>
Setting language to 'eng'
0:00:11.641586594  9671      0x9b04150 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4736:sink_66>
Setting language to 'eng'
0:00:11.711140623  9671      0x9cd96c0 WARN               mpegtsmux
mpegtsmux.c:356:mpegtsmux_pad_reset: releasing pad_data->language
0:00:11.712432191  9671      0x9cd96c0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4287:sink_66>
Setting language to 'eng'
0:00:11.736278444  9671      0x9cd96c0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4287:sink_66>
Setting language to 'eng'
0:00:12.003196165  9671      0x9ce37b0 WARN               mpegtsmux
mpegtsmux.c:356:mpegtsmux_pad_reset: releasing pad_data->language
0:00:12.004533775  9671      0x9ce37b0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4170:sink_66>
Setting language to 'eng'
0:00:12.021611624  9671      0x9ce37b0 WARN               mpegtsmux
mpegtsmux.c:869:mpegtsmux_sink_event:<splitmuxsink_rabbitmq_mpegtsmux_4170:sink_66>
Setting language to 'eng'


We can see that for each invokation of releasing pad_data->language, we have 2
invokations of g_strdup() - which causes memory leak.

-- 
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