aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-02-16 14:39:04 +1030
committerAlan Modra <amodra@gmail.com>2021-02-16 14:47:41 +1030
commit9a12b194b0e9d1bde34aca175a2a7dead2fae7a9 (patch)
tree60323e76b8522fe95222ceee0e037f1599397a9a /gas
parent70433886683b67b5a28abe35eac7e9ab82a4a9e4 (diff)
downloadbinutils-9a12b194b0e9d1bde34aca175a2a7dead2fae7a9.zip
binutils-9a12b194b0e9d1bde34aca175a2a7dead2fae7a9.tar.gz
binutils-9a12b194b0e9d1bde34aca175a2a7dead2fae7a9.tar.bz2
PR27426, More bugs in dwarf2dbg.c
PR 27426 * dwarf2dbg.c (allocate_filename_to_slot): Allocate the dirs array in another place.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/dwarf2dbg.c14
2 files changed, 17 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f4c9d0a..c74e63c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2021-02-16 Alan Modra <amodra@gmail.com>
+ PR 27426
+ * dwarf2dbg.c (allocate_filename_to_slot): Allocate the dirs array
+ in another place.
+
+2021-02-16 Alan Modra <amodra@gmail.com>
+
* read.c (demand_copy_C_string): Really check for embedded zeros.
2021-02-15 Andreas Krebbel <krebbel@linux.ibm.com>
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index f0cdc23..85db0be 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -812,10 +812,18 @@ allocate_filename_to_slot (const char * dirname,
file = get_basename (filename);
if (filename_cmp (file, files[num].filename) == 0)
{
+ /* The filenames match, but the directory table entry is empty.
+ Fill it with the provided directory name. */
if (file > filename)
- /* The filenames match, but the directory table entry is empty.
- Fill it with the provided directory name. */
- dirs[files[num].dir] = xmemdup0 (filename, file - filename);
+ {
+ if (dirs == NULL)
+ {
+ dirs_allocated = files[num].dir + 32;
+ dirs = XCNEWVEC (char *, dirs_allocated);
+ }
+
+ dirs[files[num].dir] = xmemdup0 (filename, file - filename);
+ }
return TRUE;
}
}