[gstreamer-bugs] [Bug 349180] New: gst_parse_launch is not reentrant (or recursively callable)

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sat Jul 29 08:16:35 PDT 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=349180
 GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: gst_parse_launch is not reentrant (or recursively
                    callable)
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: All
            Status: UNCONFIRMED
          Severity: critical
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: marcandre.lureau at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: 2.15/2.16
   GNOME milestone: Unspecified


Steps to reproduce:
By calling gst_parse_launch recursively


Stack trace:
This is an excerpt of valgrind analysis

==22502== Invalid write of size 1
==22502==    at 0x40BD49E: _gst_parse_yylex (lex._gst_parse_yy.c:1059)
==22502==    by 0x40C4374: _gst_parse__yylex (grammar.y:797)
==22502==    by 0x40C0F6E: _gst_parse__yyparse (grammar.tab.c:1629)
==22502==    by 0x40C4478: _gst_parse_launch (grammar.y:838)
==22502==    by 0x40B6D50: gst_parse_launch (gstparse.c:159)
==22502==    by 0x40B6C7C: gst_parse_launchv (gstparse.c:121)
==22502==    by 0x804B1F1: main (gst-launch.c:603)
==22502==  Address 0x48AAC40 is 16 bytes inside a block of size 18 free'd
==22502==    at 0x401CFCF: free (vg_replace_malloc.c:235)
==22502==    by 0x40BF380: _gst_parse_yyfree (lex._gst_parse_yy.c:2138)
==22502==    by 0x40BEB02: _gst_parse_yy_delete_buffer
(lex._gst_parse_yy.c:1726)
==22502==    by 0x40C453A: _gst_parse_launch (grammar.y:845)
==22502==    by 0x40B6D50: gst_parse_launch (gstparse.c:159)
==22502==    by 0x40AD840: gst_parse_bin_from_description (gstutils.c:3151)
==22502==    by 0x463C67E: gsmart_audio_sink_set_property
(gsmart-audiosink.c:369)
==22502==    by 0x423267A: g_object_set_property (in
/usr/lib/libgobject-2.0.so.0.1000.3)
==22502==    by 0x40BF5DF: gst_parse_element_set (grammar.y:289)
==22502==    by 0x40C1579: _gst_parse__yyparse (grammar.y:581)
==22502==    by 0x40C4478: _gst_parse_launch (grammar.y:838)
==22502==    by 0x40B6D50: gst_parse_launch (gstparse.c:159)


Other information:
it seems that 2 functions should be used to push/pop the state of the lexer.

 _gst_parse_yypush_buffer_state /pop

I will provide a patch ASAP if it's the right way to correct this behavior.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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