PR27426, More bugs in dwarf2dbg.c

Alan Modra amodra@gmail.com
Tue Feb 16 09:06:11 GMT 2021


	PR 27426
	* dwarf2dbg.c (allocate_filename_to_slot): Allocate the dirs array
	in another place.

diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index f0cdc232f5..85db0bef23 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;
 	    }
 	}

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list