diff options
author | Nick Clifton <nickc@redhat.com> | 2021-03-16 14:02:38 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2021-03-16 14:02:59 +0000 |
commit | ee42883cff56a3fb6fb4ff939dd3c8c4f42d4c12 (patch) | |
tree | 76cde264402b4677f2c10c65e5cb634cd617acd8 /ld/pe-dll.c | |
parent | 012d44268695f1c5d4e2e019c610c8b99bd7e553 (diff) | |
download | fsf-binutils-gdb-ee42883cff56a3fb6fb4ff939dd3c8c4f42d4c12.zip fsf-binutils-gdb-ee42883cff56a3fb6fb4ff939dd3c8c4f42d4c12.tar.gz fsf-binutils-gdb-ee42883cff56a3fb6fb4ff939dd3c8c4f42d4c12.tar.bz2 |
Fix potentially undefined behaviour use of strcpcy.
* pe-dll.c (pe_find_cdecl_alias_match): Use memmove to overwrite
lname string.
Diffstat (limited to 'ld/pe-dll.c')
-rw-r--r-- | ld/pe-dll.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |