>From gdb run with one of the identical core dumps:

gdb /usr/lib/iceweasel/firefox-bin ./core.firefox-bin.32265

<*snip*>

#0  0xb7cc8d91 in *__GI_getenv (name=0xb7ef4642 "DSP_DEBUG") at
getenv.c:90
90      getenv.c: No such file or directory.
        in getenv.c
(gdb) where
#0  0xb7cc8d91 in *__GI_getenv (name=0xb7ef4642 "DSP_DEBUG") at
getenv.c:90
#1  0xb7eef0e0 in ?? () from /usr/lib/libpulsedsp.so
#2  0xb7ef2e89 in close () from /usr/lib/libpulsedsp.so
#3  0xb5cbf746 in ?? () from /usr/lib/libORBit-2.so.0
#4  0xb5cbfc3f in ?? () from /usr/lib/libORBit-2.so.0
#5  0xb5cbffc2 in link_connection_state_changed ()
from /usr/lib/libORBit-2.so.0
#6  0xb5cc01dd in link_connection_exec_disconnect ()
from /usr/lib/libORBit-2.so.0
#7  0xb5cbea4c in ?? () from /usr/lib/libORBit-2.so.0
#8  0xb5cbed37 in link_exec_command () from /usr/lib/libORBit-2.so.0
#9  0xb5cbf961 in link_connection_disconnect ()
from /usr/lib/libORBit-2.so.0
#10 0xb5c9d176 in giop_connection_close () from /usr/lib/libORBit-2.so.0
#11 0xb5c9d20a in ?? () from /usr/lib/libORBit-2.so.0
#12 0xb698211f in g_object_run_dispose ()
from /usr/lib/libgobject-2.0.so.0
#13 0xb5cbf17a in link_connections_close ()
from /usr/lib/libORBit-2.so.0
#14 0xb5c9d857 in giop_shutdown () from /usr/lib/libORBit-2.so.0
#15 0xb5ca23c9 in CORBA_ORB_shutdown () from /usr/lib/libORBit-2.so.0
#16 0xb5ca252f in CORBA_ORB_destroy () from /usr/lib/libORBit-2.so.0
#17 0xb5ca3cbf in ?? () from /usr/lib/libORBit-2.so.0
#18 0xb7cc9589 in *__GI_exit (status=154756776) at exit.c:75
#19 0xb7caf7ad in __libc_start_main (main=0x8048d62 <set...@plt+246>,
argc=5, ubp_av=0xbfb285f4, init=0x804dae0 <set...@plt+20084>, 
    fini=0x804dad0 <set...@plt+20068>, rtld_fini=0xb7f1a6e0 <_dl_fini>,
stack_end=0xbfb285ec) at libc-start.c:254

Looking at the code (padsp.c), it seems like this should only happen
if the DSP_DEBUG value is not set but the check for non-null
pointer passes:

static void debug(int level, const char *format, ...) {
    va_list ap;
    const char *dlevel_s;
    int dlevel;

    dlevel_s = getenv("PADSP_DEBUG");
    if (!dlevel_s)
        return;

    dlevel = atoi(dlevel_s); <== Segfault if pointer 'dlevel_s' is NULL

Or is the segfault occuring in the getenv call?  So many levels of
indirection, exec'ing, environments, my head starts to spin...




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to