Andree Leidenfrost wrote:
Package: libnewt0.52
Version: 0.52.2-5.1
Severity: important
Dear Alistair,
In version 0.52.2-5.1, the crashes in case libfribidi0 is not installed
have returned. I am attaching a full backtrace of a non-stripped program
(mondoarchive) using a non-stripped libnewt0.52 (0.52.2-5.1).
I believe this is really the same as #351367 and #290722.
0.52.2-5 is fine, the problem only starts with 0.52.2-5.1. Also as
before, if libfribidi0 is installed, the problem goes away.
I presume the underlying reason is (from the changelog):
[...]
* Apply patch from Eugeniy Meshcheryako to regenerate configure during build
so that bidi support is enabled again. Closes: #379566
[...]
Please let me know if you need any other information.
Best regards & thanks a lot
Andree
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-k7
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Versions of packages libnewt0.52 depends on:
ii libc6 2.3.6-15 GNU C Library: Shared libraries
ii libslang2 2.0.6-2 The S-Lang programming library - r
Versions of packages libnewt0.52 recommends:
ii libfribidi0 0.10.7-3 Free Implementation of the Unicode
-- no debconf information
------------------------------------------------------------------------
*** glibc detected *** free(): invalid next size (fast): 0x080cde88 ***
Program received signal SIGABRT, Aborted.
[Switching to Thread -1479103680 (LWP 10320)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xa7e806d1 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xa7e81f9b in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xa7eb7157 in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6
#4 0xa7ebd727 in malloc_usable_size () from /lib/tls/i686/cmov/libc.so.6
#5 0xa7ebdbc2 in free () from /lib/tls/i686/cmov/libc.so.6
#6 0xa7d6c48b in dlerror () from /lib/tls/i686/cmov/libdl.so.2
#7 0xa7d6c948 in dlopen () from /lib/tls/i686/cmov/libdl.so.2
#8 0xa7fa82a9 in wchar_to_textmod_visual (in=<value optimized out>, len=80,
base_dir=0xafe6d378, need_out=1) at newt.c:258
Ok,
ignore my last reply about slang; it appears I had it backwards.
Examining the issue in more depth,
the code fails in newt.c at:
if (!handle)
handle = dlopen("/usr/lib/libfribidi.so.0", RTLD_LAZY |
RTLD_GLOBAL);
from the backtrace it appears this is triggering a bug in _glibc_ rather
than newt, but I cannot
reproduce it yet; could you do the following:
(1) upgrade libc6 to 2.3.6-16 to make sure the bug hasn't gone away
(2) produce a small test example; showing how to reproduce the bug with
mindi, mondoarchive, etc.
I think perhaps clearing error state by calling dlerror() before each
dlopen() call may fix it, ie.
--- newt.c-old 2006-07-28 07:16:21.000000000 +0100
+++ newt.c 2006-07-28 07:15:27.000000000 +0100
@@ -254,8 +254,10 @@
FriBidiStrIndex *, FriBidiStrIndex *,
FriBidiLevel *);
+ dlerror(); /* clear error state */
if (!handle)
handle = dlopen("/usr/lib/libfribidi.so.0", RTLD_LAZY |
RTLD_GLOBAL);
+ dlerror();
if (!handle)
handle = dlopen("/lib/libfribidi.so.0", RTLD_LAZY | RTLD_GLOBAL);
if (!handle)
but I would like to ensure no bugs in glibc, too.
I am uploading a version of newt to experimental (0.52.2-6) which
contains this fix to test
with,
Regards
Alastair
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]