diff options
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/dwarf.c | 8 |
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, |