patches/gdb/6.7/120-dwarf-stack-overflow.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jul 28 21:59:40 2008 +0000 (2008-07-28)
changeset 748 61cd4eb6034d
parent 746 b150d6f590fc
permissions -rw-r--r--
New patches to make glibc 2.6 and 2.6.1 build for Alpha.
Forwarded by Ioannis E. VENETIS.

/trunk/patches/glibc/2.6.1/200-alpha-ptr_mangle.patch | 103 103 0 0 ++++++++
/trunk/patches/glibc/2.6.1/190-alpha-atfcts.patch | 11 11 0 0 +
/trunk/patches/glibc/2.6.1/180-gcc-4.3-sysinclude-path.patch | 50 50 0 0 ++++
/trunk/patches/glibc/2.6.1/210-lll_lock_t.patch | 237 237 0 0 ++++++++++++++++++
/trunk/patches/glibc/2.6/200-alpha-ptr_mangle.patch | 103 103 0 0 ++++++++
/trunk/patches/glibc/2.6/190-alpha-atfcts.patch | 11 11 0 0 +
/trunk/patches/glibc/2.6/180-gcc-4.3-sysinclude-path.patch | 50 50 0 0 ++++
/trunk/patches/glibc/2.6/210-lll_lock_t.patch | 237 237 0 0 ++++++++++++++++++
/trunk/patches/glibc/ports-2.6.1/120-lll_lock_t.patch | 156 156 0 0 ++++++++++++
9 files changed, 958 insertions(+)
     1 Original patch from gentoo: gentoo/src/patchsets/gdb/6.7/80_all_gdb-6.5-dwarf-stack-overflow.patch
     2 -= BEGIN original header =-
     3 http://bugs.gentoo.org/144833
     4 
     5 for gdb/ChangeLog:
     6 2006-08-22  Will Drewry <wad@google.com>
     7 	    Tavis Ormandy <taviso@google.com>
     8 
     9 	* dwarf2read.c (decode_locdesc): Enforce location description stack
    10 	boundaries.
    11 	* dwarfread.c (locval): Likewise.
    12 
    13 -= END original header =-
    14 diff -durN gdb-6.7.orig/gdb/dwarf2read.c gdb-6.7/gdb/dwarf2read.c
    15 --- gdb-6.7.orig/gdb/dwarf2read.c	2007-09-05 02:51:48.000000000 +0200
    16 +++ gdb-6.7/gdb/dwarf2read.c	2008-06-17 23:25:38.000000000 +0200
    17 @@ -9061,8 +9061,7 @@
    18     callers will only want a very basic result and this can become a
    19     complaint.
    20  
    21 -   Note that stack[0] is unused except as a default error return.
    22 -   Note that stack overflow is not yet handled.  */
    23 +   Note that stack[0] is unused except as a default error return. */
    24  
    25  static CORE_ADDR
    26  decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
    27 @@ -9079,7 +9078,7 @@
    28  
    29    i = 0;
    30    stacki = 0;
    31 -  stack[stacki] = 0;
    32 +  stack[++stacki] = 0;
    33  
    34    while (i < size)
    35      {
    36 @@ -9261,6 +9260,16 @@
    37  		     dwarf_stack_op_name (op));
    38  	  return (stack[stacki]);
    39  	}
    40 +      /* Enforce maximum stack depth of size-1 to avoid ++stacki writing
    41 +         outside of the allocated space. Also enforce minimum > 0.
    42 +         -- wad@google.com 14 Aug 2006 */
    43 +      if (stacki >= sizeof (stack) / sizeof (*stack) - 1)
    44 +	internal_error (__FILE__, __LINE__,
    45 +	                _("location description stack too deep: %d"),
    46 +	                stacki);
    47 +      if (stacki <= 0)
    48 +	internal_error (__FILE__, __LINE__,
    49 +	                _("location description stack too shallow"));
    50      }
    51    return (stack[stacki]);
    52  }