This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] Fix CU overrun in scan_unit_for_symbols
- From: Tom Tromey <tromey at adacore dot com>
- To: binutils at sourceware dot org
- Cc: Tom Tromey <tromey at adacore dot com>
- Date: Wed, 14 Aug 2019 14:04:24 -0600
- Subject: [PATCH] Fix CU overrun in scan_unit_for_symbols
A customer program had a DWARF CU that consisted of just a CU DIE,
without any children. In this situation, scan_unit_for_symbols will
try to read past the end of the current CU, and will take use the
first bytes of the next CU as an abbrev, printing an error message.
This patch fixes the bug by changing scan_unit_for_symbols to stop at
the end of the CU rather than the end of the .debug_info section.
bfd/ChangeLog
2019-08-14 Tom Tromey <tromey@adacore.com>
* dwarf2.c (scan_unit_for_symbols): Check for end of CU, not end
of section.
---
bfd/ChangeLog | 5 +++++
bfd/dwarf2.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 057fd913173..d56244b8ff0 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -3072,7 +3072,7 @@ scan_unit_for_symbols (struct comp_unit *unit)
{
bfd *abfd = unit->abfd;
bfd_byte *info_ptr = unit->first_child_die_ptr;
- bfd_byte *info_ptr_end = unit->stash->info_ptr_end;
+ bfd_byte *info_ptr_end = unit->end_ptr;
int nesting_level = 0;
struct nest_funcinfo {
struct funcinfo *func;
--
2.20.1