[Bug 696885] New: gst printf specifier extensions can conflict with other libraries 'Q' modifier

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Mar 29 18:34:45 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=696885
  GStreamer | gstreamer (core) | 1.x

           Summary: gst printf specifier extensions can conflict with
                    other libraries 'Q' modifier
    Classification: Platform
           Product: GStreamer
           Version: 1.x
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: prahal at yahoo.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=240147)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=240147)
testcase that reproduce pitivi use case with gst debug on - segfault

eglibc was segfaulting when gst debug printing segments in pitivi ... turns out
pitivi import numpy which register a printf modifier 'Q' .. As libc6 treats
modifiers first, with 'send segment %Q to pad %P", "%Q " becomes '% ' after
modifier processing and as there are not '% ' registered printf extension, the
segment is sent to next qualifier '%P'
segfault happens when the gst extension to handle '%P' attempt to make a gst
object from the gst segment.

one hack to fix the issue:
 to avoid the (numpy/quadmath) 'Q' modifier from breaking gst 'Q' specifier ...
using "send segment %hQ to pad %P" fixes the issue (note the spurious valid 'h'
modifier which prevent 'Q' from possible processing as a modifier
as we do not handle 'h' in our specifier handler it has no effect.

The eglibc 2.17  treats modifiers first, with 'send segment %Q to pad %P", "%Q
" becomes '% ' after modifier processing and as there are not '% ' registered
printf extension, the segment is sent to next qualifier '%P'
segfault happens when the gst extension to handle '%P' attempt to make a gst
object from the gst segment.
... turns out pitivi import numpy which register a printf modifier 'Q' .

-- 
Configure bugmail: https://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