From: Alan Modra Date: Sun, 11 Dec 2022 04:17:57 +0000 (+1030) Subject: PR29870, objdump SEGV in display_debug_lines_decoded dwarf.c:5524 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f2f58a399cf3f946983398cdfe52d0eaa72bf877;p=binutils-gdb.git 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. --- diff --git a/binutils/dwarf.c b/binutils/dwarf.c index ffe3c10ff75..6ec33725876 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -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 = _(""); fileNameLength = strlen (fileName);