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-15 Tom Tromey <tromey@adacore.com> * dwarf2.c (scan_unit_for_symbols): Check for end of CU, not end of section.
This commit is contained in:
parent
6485977b89
commit
05192282ca
@ -1,3 +1,8 @@
|
||||
2019-08-15 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* dwarf2.c (scan_unit_for_symbols): Check for end of CU, not end
|
||||
of section.
|
||||
|
||||
2019-08-14 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 24623
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user