From f2f58a399cf3f946983398cdfe52d0eaa72bf877 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sun, 11 Dec 2022 14:47:57 +1030 Subject: [PATCH] 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. --- binutils/dwarf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); -- 2.30.2