Fix NULL pointer indirection when parsing corrupt DWARF data.

PR 29290
	* dwarf.c (read_and_display_attr_value): Check that debug_info_p
	is set before dereferencing it.
This commit is contained in:
Nick Clifton
2022-06-27 13:30:35 +01:00
parent 2a4fc266db
commit e98e7d9a70
2 changed files with 12 additions and 6 deletions

View File

@ -2694,18 +2694,17 @@ read_and_display_attr_value (unsigned long attribute,
{
const char *suffix = section ? strrchr (section->name, '.') : NULL;
bool dwo = suffix && strcmp (suffix, ".dwo") == 0;
const char *strng;
strng = fetch_indexed_string (uvalue, this_set, offset_size, dwo,
debug_info_p ? debug_info_p->str_offsets_base : 0);
if (do_wide)
/* We have already displayed the form name. */
printf (_("%c(offset: 0x%s): %s"), delimiter,
dwarf_vmatoa ("x", uvalue),
fetch_indexed_string (uvalue, this_set, offset_size, dwo,
debug_info_p->str_offsets_base));
dwarf_vmatoa ("x", uvalue), strng);
else
printf (_("%c(indexed string: 0x%s): %s"), delimiter,
dwarf_vmatoa ("x", uvalue),
fetch_indexed_string (uvalue, this_set, offset_size, dwo,
debug_info_p->str_offsets_base));
dwarf_vmatoa ("x", uvalue), strng);
}
break;