PR29870, objdump SEGV in display_debug_lines_decoded dwarf.c:5524

DWARF5 directory and file table allow more opportunity for fuzzers
to break things.  There are likely other places in dwarf.c that should
be fixed too.

	PR 29870
	* dwarf.c (display_debug_lines_decoded): Handle NULL file_table
	name entry.
This commit is contained in:
Alan Modra
2022-12-11 14:47:57 +10:30
parent 85f9067d3a
commit f2f58a399c

View File

@@ -5499,7 +5499,7 @@ display_debug_lines_decoded (struct dwarf_section * section,
|| (xop == DW_LNS_copy))
{
const unsigned int MAX_FILENAME_LENGTH = 35;
char *fileName;
char *fileName = NULL;
char *newFileName = NULL;
size_t fileNameLength;
@@ -5518,7 +5518,7 @@ display_debug_lines_decoded (struct dwarf_section * section,
else
fileName = (char *) file_table[indx].name;
}
else
if (!fileName)
fileName = _("<unknown>");
fileNameLength = strlen (fileName);