Work around problem in DWARF decoding library which can result in attempts to read...
authorNick Clifton <nickc@redhat.com>
Wed, 21 Oct 2020 16:42:42 +0000 (17:42 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 21 Oct 2020 16:42:42 +0000 (17:42 +0100)
commit596245135106b2a965d809e272dc7c758afdc98f
treeca542fe6fb240578801d6d813939fc1a95d471e5
parentc21f37a889dbf57077981970a1b6167a0dcb39af
Work around problem in DWARF decoding library which can result in attempts to read arbitrary bytes as if they were an LEB128 encoded value.

* dwarf.c (skip_attr_bytes): Accept DWARF versions higher than 4
when processing the DW_FORM_ref_addr form.
Skip bytes in DW_FORM_block and DW_FORM_exprloc forms.
Handle DW_FORM_indirect.
(get_type_signedness): Allow a limited amount of recursion.
Do not attempt to decode types that use the DW_FORM_ref_addr form.
(read_and_display_attr_value):  Do not attempt to decode types
that use the DW_FORM_ref_addr form.
binutils/ChangeLog
binutils/dwarf.c