[gstreamer-bugs] [Bug 348233] New: dv1394src crashes with libavc1394 0.5.3 - cause known

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Fri Jul 21 04:12:42 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=348233
 GStreamer | gst-plugins-good | Ver: 0.10.x

           Summary: dv1394src crashes with libavc1394 0.5.3 - cause known
           Product: GStreamer
           Version: 0.10.x
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: marcelm at luon.net
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: 2.13/2.14
   GNOME milestone: Unspecified


When libavc1394 0.5.3 is installed:

[marcelm at salyut ~]$ gst-launch dv1394src ! fakesink
Setting pipeline to PAUSED ...
Segmentation fault

The same pipeline works fine with libavc1394 0.5.1.

I have tracked down the issue. libraw1394 has a concept of handles, which
maintain some state for operations on the firewire bus. libraw1394 handles have
a field called userdata, which applications can use for quick access to their
own administration in callback functions etc.

dv1394src uses this userdata field. Starting with version 0.5.3, libavc1394
also uses this userdata field for its own purposes. This clashes.

Specifically, in gst_dv1394src_start(), dv1394src sets the userdata with
raw1394_set_userdata(), and later calls avc1394_vcr_is_recording(). In
libavc1394, avc1394_vcr_is_recording() eventually calls
init_avc_response_handler(), which sets the userdata using
raw1394_set_userdata(). libavc1394's userdata is later freed, but the userdata
field of the libraw1394 handle still points to this freed memory. When
dv1394src tries to dereference it (in gst_dv1394src_iso_receive()), it SEGVs.

To fix this, either:

 - dv1394src must stop relying on the userdata field, or
 - libavc1394 must stop using the userdata field, or
 - libavc1394 must restore the userdata field to its previous value after using
it


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