Hi,

I've rebuilt irssi (non-stripped) and there's a more detailed bt:

(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7a366d1 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7a37f9b in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7a6d127 in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6
#4  0xb7a736f7 in malloc_usable_size () from /lib/tls/i686/cmov/libc.so.6
#5  0xb7a73b92 in free () from /lib/tls/i686/cmov/libc.so.6
#6  0xb7d2eea1 in g_free () from /usr/lib/libglib-2.0.so.0
#7  0x080bdf72 in dcc_chat_deinit () at dcc-chat.c:842
#8  0x080bbd98 in irc_dcc_deinit () at dcc.c:570
#9  0x080a3855 in irc_deinit () at irc.c:6
#10 0x0806f91b in main (argc=1, argv=0xbf9405b4) at irssi.c:245

Well, it seems that dcc_chat_deinit() invokes g_free() (indirectly) through
the function below:

void dcc_unregister_type(const char *type)
{
        GSList *pos;

        pos = gslist_find_string(dcc_types, type);
        if (pos != NULL) {
                dcc_types = g_slist_remove(dcc_types, pos->data);
                g_free(pos->data);
        }
}

I think if you replace the g_free() call with g_object_unref() adding #include
<glib-object.h> to the headers, it will solve this bug. I haven't tested it,
because it will need the latest libglib2.0-dev that isn't available in i386
yet, once libglib2.0-dev 2.10.1-2 builds, i'll test.

Hope that helps,
Gustavo Franco - <[EMAIL PROTECTED]>


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to