diff options
author | Alan Modra <amodra@gmail.com> | 2021-05-15 15:15:47 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2021-05-15 15:16:35 +0930 |
commit | 5250d2f0a536276cbc8735e53ae70425780b991f (patch) | |
tree | 7284340c6fc3a93b480ccfc7232b69d26d301238 | |
parent | 6ca073501796fb41372af7f746411fbb498957a3 (diff) |
display_debug_str_offsets
* dwarf.c (display_debug_str_offsets): Constrain reads to length
given in header.
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/dwarf.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 6d36f58a9c..670ab97704 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,10 @@ 2021-05-15 Alan Modra <amodra@gmail.com> + * dwarf.c (display_debug_str_offsets): Constrain reads to length + given in header. + +2021-05-15 Alan Modra <amodra@gmail.com> + * dwarf.c (display_debug_aranges): Delete initial_length_size. Use end_ranges to constrain data reads to header length. Avoid pointer UB. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index cd76f3f5e8..a0b84fc8d8 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -7480,12 +7480,12 @@ display_debug_str_offsets (struct dwarf_section *section, } int version; - SAFE_BYTE_GET_AND_INC (version, curr, 2, end); + SAFE_BYTE_GET_AND_INC (version, curr, 2, entries_end); if (version != 5) warn (_("Unexpected version number in str_offset header: %#x\n"), version); int padding; - SAFE_BYTE_GET_AND_INC (padding, curr, 2, end); + SAFE_BYTE_GET_AND_INC (padding, curr, 2, entries_end); if (padding != 0) warn (_("Unexpected value in str_offset header's padding field: %#x\n"), padding); |