Bug#755717: gst-libav1.0: segfaults when FFmpeg/Libav is built with --enable-small

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Tue Jul 22 17:06:54 UTC 2014


Source: gst-libav1.0
Version: 1.4.0-1
Severity: important
Tags: upstream

Dear maintainer,

gst-libav uses AVInputFormat.long_name pointers without checking if they 
are NULL. But that happens for example, when FFmpeg/Libav is configured 
with --enable-small.
In that case the plugin segfaults, when gstreamer tries to load it (see 
the attached backtrace).

So please add the necessary checks for NULL pointers.

Best regards,
Andreas
-------------- next part --------------
gdb -ex run -ex bt -ex "print in_plugin->long_name" -ex continue -ex quit --args /usr/bin/gst-codec-info-1.0 /tmp/buildd/gst-libav1.0-1.4.0/debian/tmp//usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
GNU gdb (Debian 7.7.1-2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/gst-codec-info-1.0...Reading symbols from /usr/lib/debug/.build-id/a9/31c8248cc61a103e0f6146857c6f8ae4a948e4.debug...done.
done.
Starting program: /usr/bin/gst-codec-info-1.0 /tmp/buildd/gst-libav1.0-1.4.0/debian/tmp//usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff601313c in gst_ffmpegdemux_register (plugin=0x62c2c0)
    at gstavdemux.c:1909
1909	    if (!strncmp (in_plugin->long_name, "raw ", 4) ||
#0  0x00007ffff601313c in gst_ffmpegdemux_register (plugin=0x62c2c0)
    at gstavdemux.c:1909
#1  0x00007ffff5ff70b0 in plugin_init (plugin=0x62c2c0) at gstav.c:141
#2  0x00007ffff73d7a17 in gst_plugin_register_func (plugin=0x62c2c0, 
    desc=0x7ffff6224e80 <gst_plugin_desc>, 
    user_data=0x7ffff76754c0 <_gst_debug_min>) at gstplugin.c:522
#3  0x00007ffff73d9822 in gst_plugin_load_file (
    filename=0x7fffffffe4dc "/tmp/buildd/gst-libav1.0-1.4.0/debian/tmp//usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so", error=0x7fffffffe068)
    at gstplugin.c:817
#4  0x0000000000401a0b in main (argc=<optimized out>, argv=<optimized out>)
    at debian/gst-codec-info.c:434
$1 = 0x0
Continuing.

ERROR: Caught a segmentation fault while loading plugin file:
/tmp/buildd/gst-libav1.0-1.4.0/debian/tmp//usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so

Please either:
- remove it and restart.
- run with --gst-disable-segtrap --gst-disable-registry-fork and debug.
[Inferior 1 (process 30269) exited with code 0377]


More information about the pkg-gstreamer-maintainers mailing list