From d63fd5d103a7ddf4b15c2945b47a5f633485c6cf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 1 Apr 2003 10:31:34 +0000 Subject: Make add_line_info() take a copy of the filename. --- bfd/ChangeLog | 2 ++ bfd/dwarf2.c | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'bfd') 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 Daniel Jacobowitz 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. -- cgit v1.1