PR29870, objdump SEGV in display_debug_lines_decoded dwarf.c:5524
Checks
Commit Message
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.
@@ -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);