diff options
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/dwarf.c | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 335c7d02fa..85d21ebfa6 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,11 @@ 2021-05-13 Alan Modra <amodra@gmail.com> + PR 27861 + * dwarf.c (display_debug_str_offsets): Sanity check dwarf5 + header length. + +2021-05-13 Alan Modra <amodra@gmail.com> + PR 27860 * dwarf.c (display_debug_frames): Sanity check cie_off before attempting to read cie. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 20bd92657b..b22d33c43d 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -7487,7 +7487,14 @@ display_debug_str_offsets (struct dwarf_section *section, } else { - entries_end = curr + length; + if (length <= (dwarf_vma) (end - curr)) + entries_end = curr + length; + else + { + warn (_("Section %s is too small %#lx\n"), + section->name, (unsigned long) section->size); + entries_end = end; + } int version; SAFE_BYTE_GET_AND_INC (version, curr, 2, end); |