mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
Properly check abbrev size
abbrev_base is independent of abbrev_size. We should use abbrev_base + abbrev_size to check abbrev section size. * dwarf.c (process_debug_info): Properly check abbrev size.
This commit is contained in:
parent
1306a7421c
commit
a0a3b04c61
@ -1,3 +1,7 @@
|
||||
2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* dwarf.c (process_debug_info): Properly check abbrev size.
|
||||
|
||||
2015-01-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR binutils/17531
|
||||
|
@ -2467,10 +2467,11 @@ process_debug_info (struct dwarf_section *section,
|
||||
(unsigned long) compunit.cu_abbrev_offset,
|
||||
(unsigned long) abbrev_size);
|
||||
/* PR 17531: file:4bcd9ce9. */
|
||||
else if (abbrev_base >= abbrev_size)
|
||||
warn (_("Debug info is corrupted, abbrev base (%lx) is larger than abbrev section size (%lx)\n"),
|
||||
(unsigned long) abbrev_base,
|
||||
(unsigned long) abbrev_size);
|
||||
else if ((abbrev_base + abbrev_size)
|
||||
> debug_displays [abbrev_sec].section.size)
|
||||
warn (_("Debug info is corrupted, abbrev size (%lx) is larger than abbrev section size (%lx)\n"),
|
||||
(unsigned long) abbrev_base + abbrev_size,
|
||||
(unsigned long) debug_displays [abbrev_sec].section.size);
|
||||
else
|
||||
process_abbrev_section
|
||||
(((unsigned char *) debug_displays [abbrev_sec].section.start
|
||||
|
Loading…
Reference in New Issue
Block a user