guile testsuite failure (gnutls 3.0.1 and later) and armel and mipsel

Ludovic Courtès ludo at
Wed Oct 19 23:49:33 CEST 2011


Nikos Mavrogiannopoulos <nmav at> skribis:

> On Sun, Oct 16, 2011 at 6:09 PM, Andreas Metzler
> <ametzler at> wrote:


>> (gdb) bt
>> #0  *__GI___libc_free (mem=0x1) at malloc.c:3709
>> #1  0x400b59cc in scm_gc_free () from /usr/lib/
>> #2  0x400d79cc in scm_remove_from_port_table () from /usr/lib/
>> #3  0x400b5f28 in scm_i_sweep_card () from /usr/lib/
>> #4  0x404248f0 in ?? ()

I’ve reproduced it on armv5tel-unknown-linux-gnueabi, with Guile 1.8.8,
GCC 4.5.1, and glibc 2.12.

The 0x1 above seems to be the value of some port’s ‘putback_buf’ field.
Normally it should be either NULL or a valid pointer.

Adding ‘c_port->putback_buf = NULL’ in
$GNUTLS/guile/src/core.c:make_session_record_port, which is supposed to
be a non-functional change, leads to a malloc inconsistency much more
quickly (setting $MALLOC_CHECK_=2 helps catch it.)

So I’m starting to wonder if libguile and GnuTLS somehow have a
different vision of the layout of ‘scm_t_port’, which would explain
these inconsistencies.

To be continued...


More information about the Gnutls-devel mailing list