diff options
-rw-r--r-- | bfd/ChangeLog | 2 | ||||
-rw-r--r-- | bfd/dwarf2.c | 11 |
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. |