aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog2
-rw-r--r--bfd/dwarf2.c11
2 files changed, 12 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 897ab4b..4e59f8b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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>
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index e8ebd62..1566b9a 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -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.