Package: libgc1
Version: 1:6.4-1
Severity: normal
When /proc/self/stat does not contain information about the stack,
like ie. on a grsecurity enabled kernel, any program linked to libgc1
abort()'s with the error message "Absurd stack bottom value".
This is due to result (the stack base value as read from
/proc/self/stat) being 0 at the test in line 975 of os_dep.c.
As a workaround I tried using the heuristic methods to find the stack
base instead of the linux one.
Using HEURISTIC1 causes a segfault, HEURISTIC2 *seems* to work (I
visited a webpage with w3m, which is linked against libgc1 and showed
the descrided behaviour before).
I attached the patch just to illustrate what I changed and did not add
the patch tag as it is just a workaround.
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.11.5-grsecurity-2.1.4-bdclaim
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages libgc1 depends on:
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libgcc1 1:3.4.3-12 GCC support library
ii libstdc++5 1:3.3.5-12 The GNU Standard C++ Library v3
-- no debconf information
--
.'"`. /"\
| :' : Elmar Hoffmann <[EMAIL PROTECTED]> ASCII Ribbon Campaign \ /
`. `' GPG key available via pgp.net against HTML email X
`- & vCards / \
--- libgc-6.4.orig/include/private/gcconfig.h 2004-12-18 01:20:16.000000000
+0100
+++ libgc-6.4/include/private/gcconfig.h 2005-03-27 21:20:29.092877256
+0200
@@ -1090,9 +1090,10 @@
# define USE_GENERIC_PUSH_REGS
# endif
# define OS_TYPE "LINUX"
-# define LINUX_STACKBOTTOM
# if 0
-# define HEURISTIC1
+# define LINUX_STACKBOTTOM
+# else
+# define HEURISTIC2
# undef STACK_GRAN
# define STACK_GRAN 0x10000000
/* STACKBOTTOM is usually 0xc0000000, but this changes with */