aboutsummaryrefslogtreecommitdiff
path: root/bfd/syms.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/syms.c')
-rw-r--r--bfd/syms.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/bfd/syms.c b/bfd/syms.c
index 1c4bf28..a4f502f 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -1313,14 +1313,16 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
|| strncmp (info->filename, directory_name, dirlen) != 0
|| strcmp (info->filename + dirlen, file_name) != 0)
{
+ size_t len;
+
if (info->filename != NULL)
free (info->filename);
- info->filename = (char *) bfd_malloc ((bfd_size_type) dirlen
- + strlen (file_name) + 1);
+ len = strlen (file_name) + 1;
+ info->filename = (char *) bfd_malloc ((bfd_size_type) dirlen + len);
if (info->filename == NULL)
return false;
- strcpy (info->filename, directory_name);
- strcpy (info->filename + dirlen, file_name);
+ memcpy (info->filename, directory_name, dirlen);
+ memcpy (info->filename + dirlen, file_name, len);
}
*pfilename = info->filename;