[binutils-gdb] PR29870, objdump SEGV in display_debug_lines_decoded dwarf.c:5524
Alan Modra
amodra@sourceware.org
Sun Dec 11 13:22:06 GMT 2022
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f2f58a399cf3f946983398cdfe52d0eaa72bf877
commit f2f58a399cf3f946983398cdfe52d0eaa72bf877
Author: Alan Modra <amodra@gmail.com>
Date: Sun Dec 11 14:47:57 2022 +1030
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:
---
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 = _("<unknown>");
fileNameLength = strlen (fileName);
More information about the Binutils-cvs
mailing list