Comment 0 for bug 919202

Revision history for this message
Martin Pitt (pitti) wrote :

I have used eglibc 2.15~pre6-0ubuntu4 from https://launchpad.net/~ubuntu-toolchain-r/+archive/glibc/+packages since last week. Yesterday I noticed that this causes a crash in the gdk-pixbuf loader cache when it tries to examine the SVG one.

This can be reduced to this test case:

With precise's libc6 2.13, it works:

/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so# GdkPixbuf Image Loader Modules file
# Automatically generated file, do not edit
# Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.25.0
#
"/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so"
"svg" 2 "gdk-pixbuf" "Scalable Vector Graphics" "LGPL"
"image/svg+xml" "image/svg" "image/svg-xml" "image/vnd.adobe.svg+xml" "text/xml-svg" "image/svg+xml-compressed" ""
"svg" "svgz" "svg.gz" ""
" <svg" "* " 100
" <!DOCTYPE svg" "* " 100

With the PPA version it crashes:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000005446 in ?? ()
(gdb) bt
#0 0x0000000000005446 in ?? ()
#1 0x00007ffff5137fc5 in floor ()
    at ../sysdeps/x86_64/fpu/multiarch/s_floor.S:26
#2 0x00007ffff7de6a2b in ?? () from /lib64/ld-linux-x86-64.so.2
#3 0x00007ffff7ded936 in ?? () from /lib64/ld-linux-x86-64.so.2
#4 0x00007ffff7de9126 in ?? () from /lib64/ld-linux-x86-64.so.2
#5 0x00007ffff7ded2ca in ?? () from /lib64/ld-linux-x86-64.so.2
#6 0x00007ffff7107f26 in dlopen_doit (a=0x7fffffffe280) at dlopen.c:67
#7 0x00007ffff7de9126 in ?? () from /lib64/ld-linux-x86-64.so.2
#8 0x00007ffff710852f in _dlerror_run (operate=0x7ffff7107ec0 <dlopen_doit>,
    args=0x7fffffffe280) at dlerror.c:164
#9 0x00007ffff7107fc1 in __dlopen (file=<optimized out>, mode=<optimized out>)
    at dlopen.c:88
#10 0x00007ffff7bd76fc in _g_module_open (bind_local=<optimized out>,
    bind_lazy=<optimized out>,
    file_name=0x605000 "/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so")
    at /build/buildd/glib2.0-2.31.10/./gmodule/gmodule-dl.c:99
#11 g_module_open (
    file_name=0x604630 "/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so", flags=<optimized out>)
    at /build/buildd/glib2.0-2.31.10/./gmodule/gmodule.c:584
#12 0x00000000004010a0 in ?? ()
#13 0x0000000000400d94 in ?? ()
#14 0x00007ffff732c76d in __libc_start_main (main=0x400cf0, argc=2,
    ubp_av=0x7fffffffe4e8, init=<optimized out>, fini=<optimized out>,
    rtld_fini=<optimized out>, stack_end=0x7fffffffe4d8) at libc-start.c:226

Unfortunately the backtrace is rather useless. I do have the matching libc6-dbg, it just doesn't seem to help here.