diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-10-23 10:14:13 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-10-23 10:14:13 +0000 |
commit | bbb5b98876a4b299c0af11ebdd3dcb66888af322 (patch) | |
tree | b2ab4704217dca6e8d7f5d13453d8c598787576e /main/gdb/80_all_gdb-6.5-dwarf-stack-overflow.patch | |
parent | d666f38c767db33ee765c73fba530d15574effc0 (diff) | |
download | aports-bbb5b98876a4b299c0af11ebdd3dcb66888af322.tar.bz2 aports-bbb5b98876a4b299c0af11ebdd3dcb66888af322.tar.xz |
Revert "Revert "main/gdb: upgrade to 7.2""
This reverts commit d666f38c767db33ee765c73fba530d15574effc0.
Diffstat (limited to 'main/gdb/80_all_gdb-6.5-dwarf-stack-overflow.patch')
-rw-r--r-- | main/gdb/80_all_gdb-6.5-dwarf-stack-overflow.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/main/gdb/80_all_gdb-6.5-dwarf-stack-overflow.patch b/main/gdb/80_all_gdb-6.5-dwarf-stack-overflow.patch new file mode 100644 index 0000000000..2c3c2cbae6 --- /dev/null +++ b/main/gdb/80_all_gdb-6.5-dwarf-stack-overflow.patch @@ -0,0 +1,54 @@ +http://bugs.gentoo.org/144833 + +for gdb/ChangeLog: +2006-08-22 Will Drewry <wad@google.com> + Tavis Ormandy <taviso@google.com> + + * dwarf2read.c (decode_locdesc): Enforce location description stack + boundaries. + * dwarfread.c (locval): Likewise. + +2007-10-15 Jan Kratochvil <jan.kratochvil@redhat.com> + + Port to GDB-6.7. + +Index: gdb-6.7/gdb/dwarf2read.c +=================================================================== +--- gdb-6.7.orig/gdb/dwarf2read.c 2007-10-15 00:08:30.000000000 +0200 ++++ gdb-6.7/gdb/dwarf2read.c 2007-10-15 21:42:43.000000000 +0200 +@@ -9070,8 +9070,7 @@ dwarf2_fundamental_type (struct objfile + callers will only want a very basic result and this can become a + complaint. + +- Note that stack[0] is unused except as a default error return. +- Note that stack overflow is not yet handled. */ ++ Note that stack[0] is unused except as a default error return. */ + + static CORE_ADDR + decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu) +@@ -9088,7 +9087,7 @@ decode_locdesc (struct dwarf_block *blk, + + i = 0; + stacki = 0; +- stack[stacki] = 0; ++ stack[++stacki] = 0; + + while (i < size) + { +@@ -9270,6 +9269,16 @@ decode_locdesc (struct dwarf_block *blk, + dwarf_stack_op_name (op)); + return (stack[stacki]); + } ++ /* Enforce maximum stack depth of size-1 to avoid ++stacki writing ++ outside of the allocated space. Also enforce minimum > 0. ++ -- wad@google.com 14 Aug 2006 */ ++ if (stacki >= sizeof (stack) / sizeof (*stack) - 1) ++ internal_error (__FILE__, __LINE__, ++ _("location description stack too deep: %d"), ++ stacki); ++ if (stacki <= 0) ++ internal_error (__FILE__, __LINE__, ++ _("location description stack too shallow")); + } + return (stack[stacki]); + } |