Fix an illegal memory access when parsing a corrupt assembler file.

PR 27355
	* dwarf2dbg.c (allocate_filename_to_slot): Allocate the dirs array
	if it has not already been created.
This commit is contained in:
Nick Clifton 2021-02-08 18:31:21 +00:00
parent 4001d90dde
commit 80b652efa2
2 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2021-02-08 Nick Clifton <nickc@redhat.com>
PR 27355
* dwarf2dbg.c (allocate_filename_to_slot): Allocate the dirs array
if it has not already been created.
2021-02-04 Nelson Chu <nelson.chu@sifive.com>
* config/tc-riscv.c (riscv_multi_subset_supports): Removed

View File

@ -769,7 +769,7 @@ allocate_filename_to_slot (const char * dirname,
{
const char * dir = NULL;
if (dirs)
if (dirs != NULL)
dir = dirs[files[num].dir];
if (with_md5
@ -787,7 +787,15 @@ allocate_filename_to_slot (const char * dirname,
/* If the filenames match, but the directory table entry was
empty, then fill it with the provided directory name. */
if (dir == NULL)
dirs[files[num].dir] = xmemdup0 (dirname, strlen (dirname));
{
if (dirs == NULL)
{
dirs_allocated = files[num].dir + 32;
dirs = XCNEWVEC (char *, dirs_allocated);
}
dirs[files[num].dir] = xmemdup0 (dirname, strlen (dirname));
}
return TRUE;
}