aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/pe-dll.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 01b93c5..7cc917a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2021-03-16 Nick Clifton <nickc@redhat.com>
+
+ * pe-dll.c (pe_find_cdecl_alias_match): Use memmove to overwrite
+ lname string.
+
2021-03-15 Jan Beulich <jbeulich@suse.com>
* pe-dll.c (generate_reloc): Drop padding to reloc_s->size.
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index eaecb95..7aba09c 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -3039,7 +3039,9 @@ pe_find_cdecl_alias_match (struct bfd_link_info *linfo, char *name)
if (pe_details->underscored)
lname[0] = '_';
else
- strcpy (lname, lname + 1);
+ /* Use memmove rather than strcpy as that
+ can handle overlapping buffers. */
+ memmove (lname, lname + 1, strlen (lname));
key.key = lname;
kv = bsearch (&key, udef_table, undef_count,
sizeof (struct key_value), undef_sort_cmp);