aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/dwarf.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 93a47cb..5efa930 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,10 @@
2021-05-15 Alan Modra <amodra@gmail.com>
+ * dwarf.c (display_debug_lines_decoded): Don't use strnlen when
+ we have already checked for NUL termination.
+
+2021-05-15 Alan Modra <amodra@gmail.com>
+
* dwarf.c (read_debug_line_header): Delete initial_length_size.
Avoid pointer UB. Keep within length specified by header.
Delete dead code.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 4f69dbb..e881cee 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -5042,8 +5042,8 @@ display_debug_lines_decoded (struct dwarf_section * section,
while (*ptr_directory_table != 0)
{
directory_table[i] = ptr_directory_table;
- ptr_directory_table += strnlen ((char *) ptr_directory_table,
- ptr_directory_table - end) + 1;
+ ptr_directory_table
+ += strlen ((char *) ptr_directory_table) + 1;
i++;
}
}
@@ -5082,8 +5082,8 @@ display_debug_lines_decoded (struct dwarf_section * section,
while (*ptr_file_name_table != 0)
{
file_table[i].name = ptr_file_name_table;
- ptr_file_name_table += strnlen ((char *) ptr_file_name_table,
- end - ptr_file_name_table) + 1;
+ ptr_file_name_table
+ += strlen ((char *) ptr_file_name_table) + 1;
/* We are not interested in directory, time or size. */
READ_ULEB (file_table[i].directory_index,