patches/gdb/6.8/100-gdb-6.5-dwarf-stack-overflow.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jun 24 16:24:09 2008 +0000 (2008-06-24)
changeset 611 eac4dc8da8a9
permissions -rw-r--r--
New patches from Ioannis E. VENETIS to allow building more up-to-date Alpha x-compilers.
Some patches are still missing, though.
See: http://sourceware.org/ml/libc-help/2008-06/msg00061.html

/trunk/patches/glibc/2.5.1/270-glibc-alpha-cfi.patch | 25 25 0 0 ++++++++++
/trunk/patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch | 24 24 0 0 ++++++++++
/trunk/patches/glibc/2.5/270-glibc-alpha-cfi.patch | 25 25 0 0 ++++++++++
/trunk/patches/glibc/2.5/280-glibc-alpha-sigsuspend.patch | 24 24 0 0 ++++++++++
/trunk/patches/glibc/linuxthreads-2.3.6/270-glibc-linuxthreads-alpha-cfi.patch | 25 25 0 0 ++++++++++
/trunk/patches/gcc/4.2.0/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++
/trunk/patches/gcc/4.2.1/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++
/trunk/patches/gcc/4.3.0/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++
/trunk/patches/gcc/4.2.2/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++
/trunk/patches/gcc/4.3.1/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++
/trunk/patches/gcc/4.2.3/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++
11 files changed, 225 insertions(+)
     1 Original patch from gentoo: gentoo/src/patchsets/gdb/6.8/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.8.orig/gdb/dwarf2read.c gdb-6.8/gdb/dwarf2read.c
    15 --- gdb-6.8.orig/gdb/dwarf2read.c	2008-03-10 15:18:10.000000000 +0100
    16 +++ gdb-6.8/gdb/dwarf2read.c	2008-06-17 16:07:31.000000000 +0200
    17 @@ -9124,8 +9124,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 @@ -9142,7 +9141,7 @@
    28  
    29    i = 0;
    30    stacki = 0;
    31 -  stack[stacki] = 0;
    32 +  stack[++stacki] = 0;
    33  
    34    while (i < size)
    35      {
    36 @@ -9324,6 +9323,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  }