Make add_line_info() take a copy of the filename.
authorNick Clifton <nickc@redhat.com>
Tue, 1 Apr 2003 10:31:34 +0000 (10:31 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 1 Apr 2003 10:31:34 +0000 (10:31 +0000)
bfd/ChangeLog
bfd/dwarf2.c

index 897ab4b411f76b8452e3c9db6972853e109d1a4a..4e59f8ba0f5f096fc86fbc2d96329a10a84bd5d3 100644 (file)
@@ -3,6 +3,8 @@
        * dwarf2.c (concat_filename): Use bfd_malloc() and strdup()
        instead of concat().
        (decode_line_info): Only free filename if it is not NULL.
+       (add_line_info): Make a copy of the filename when storing it into
+       the info structure.
 
 2003-03-31  Andreas Schwab  <schwab@suse.de>
            Daniel Jacobowitz  <drow@mvista.com>
index e8ebd6215fe8e0e1e6e42dd0e2df16281207a277..1566b9aeef1b1e29c4c3b4c15a1f9d53fedf6775 100644 (file)
@@ -901,10 +901,19 @@ add_line_info (table, address, filename, line, column, end_sequence)
 
   /* Set member data of 'info'.  */
   info->address = address;
-  info->filename = filename;
   info->line = line;
   info->column = column;
   info->end_sequence = end_sequence;
+
+  amt = strlen (filename);
+  if (amt)
+    {
+      info->filename = bfd_alloc (table->abfd, amt + 1);
+      if (info->filename)
+       strcpy (info->filename, filename);
+    }
+  else
+    info->filename = NULL;
 }
 
 /* Extract a fully qualified filename from a line info table.