patches/gdb/6.7/150-gdb-6.5-dwarf-stack-overflow.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jun 17 21:37:27 2008 +0000 (2008-06-17)
changeset 570 301eb285ae7d
permissions -rw-r--r--
Add patches for gdb 6.7, 6.7.1 and 6.8, vampirised from the Gentoo CVS.

/trunk/patches/gdb/6.7.1/175-gdb-hppa-offsets.patch | 272 272 0 0 +++++++++++++++++++
/trunk/patches/gdb/6.7.1/200-gdb-deleted-children.patch | 26 26 0 0 ++
/trunk/patches/gdb/6.7.1/225-gdb-6.5-dwarf-stack-overflow.patch | 52 52 0 0 ++++
/trunk/patches/gdb/6.7.1/150-gdb-6.3-security-errata-20050610.patch | 205 205 0 0 ++++++++++++++
/trunk/patches/gdb/6.7/150-gdb-6.5-dwarf-stack-overflow.patch | 52 52 0 0 ++++
/trunk/patches/gdb/6.7/100-gdb-6.3-security-errata-20050610.patch | 205 205 0 0 ++++++++++++++
/trunk/patches/gdb/6.7/125-gdb-hppa-offsets.patch | 272 272 0 0 +++++++++++++++++++
/trunk/patches/gdb/6.8/100-gdb-6.5-dwarf-stack-overflow.patch | 52 52 0 0 ++++
/trunk/patches/gdb/6.8/200-gdb-tdep-opcode-include-workaround.patch | 33 33 0 0 ++
/trunk/patches/gdb/6.8/150-gdb-6.3-security-errata-20050610.patch | 205 205 0 0 ++++++++++++++
10 files changed, 1374 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  }