Fix an illegal memory access in the assembler when generating a DWARF5 file/directory table with no entries.

PR 25917
	* dwarf2dbg.c (out_dir_and_file_list): Check for the directory
	table's existence before looking at its entries.
	* testsuite/gas/elf/pr25917.s: New test source file.
	* testsuite/gas/elf/pr25917.d: New test driver.
	* testsuite/gas/elf/elf.exp (run_elf_list_test): Run the new test.
This commit is contained in:
Nick Clifton 2020-05-04 10:19:38 +01:00
parent 6015a06749
commit 4706679dac
5 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2020-05-04 Nick Clifton <nickc@redhat.com>
PR 25917
* dwarf2dbg.c (out_dir_and_file_list): Check for the directory
table's existence before looking at its entries.
* testsuite/gas/elf/pr25917.s: New test source file.
* testsuite/gas/elf/pr25917.d: New test driver.
* testsuite/gas/elf/elf.exp (run_elf_list_test): Run the new test.
2020-04-30 Alex Coplan <alex.coplan@arm.com>
* config/tc-aarch64.c (fix_insn): Implement for

View File

@ -1995,7 +1995,7 @@ out_dir_and_file_list (void)
/* Emit directory list. */
if (DWARF2_LINE_VERSION >= 5)
{
if (dirs[0] == NULL)
if (dirs == NULL || dirs[0] == NULL)
dir = remap_debug_filename (".");
else
dir = remap_debug_filename (dirs[0]);

View File

@ -274,6 +274,7 @@ if { [is_elf_format] } then {
run_dump_test "dwarf2-18" $dump_opts
run_dump_test "dwarf2-19" $dump_opts
run_dump_test "dwarf-5-file0" $dump_opts
run_dump_test "pr25917"
run_dump_test "bss"
run_dump_test "bad-bss"
run_dump_test "bad-section-flag"

View File

@ -0,0 +1,9 @@
#as: --gdwarf-5
#name: DWARF5: no files or directories
#readelf: -wl
#...
The Directory Table is empty.
No Line Number Statements.
#pass

View File

@ -0,0 +1,4 @@
.section .debug_info,"",%progbits
.Ldebug_info0:
.dc.l 0x30
.dc.l 0x5