From: Nick Clifton Date: Tue, 1 Apr 2003 10:31:34 +0000 (+0000) Subject: Make add_line_info() take a copy of the filename. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d63fd5d103a7ddf4b15c2945b47a5f633485c6cf;p=binutils-gdb.git Make add_line_info() take a copy of the filename. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 897ab4b411f..4e59f8ba0f5 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 e8ebd6215fe..1566b9aeef1 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.