PR22201, DW_AT_name with out of bounds reference
Alan Modra
amodra@gmail.com
Mon Sep 25 13:14:00 GMT 2017
DW_AT_name ought to always have a string value.
PR 22201
* dwarf2.c (scan_unit_for_symbols): Ignore DW_AT_name unless it
has string form.
(parse_comp_unit): Likewise.
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 8abb3f0..9ae5fba 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -3225,7 +3225,8 @@ scan_unit_for_symbols (struct comp_unit *unit)
switch (attr.name)
{
case DW_AT_name:
- var->name = attr.u.str;
+ if (is_str_attr (attr.form))
+ var->name = attr.u.str;
break;
case DW_AT_decl_file:
@@ -3477,7 +3478,8 @@ parse_comp_unit (struct dwarf2_debug *stash,
break;
case DW_AT_name:
- unit->name = attr.u.str;
+ if (is_str_attr (attr.form))
+ unit->name = attr.u.str;
break;
case DW_AT_low_pc:
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list