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   */

Reply via email to