}
else
{
- alc = bfd_malloc ((bfd_size_type) (p - name + 1));
+ size_t len = p - name + 1;
+
+ alc = bfd_malloc ((bfd_size_type) len);
if (alc == NULL)
return false;
- strncpy (alc, name, (size_t) (p - name));
- alc[p - name] = '\0';
+ memcpy (alc, name, len - 1);
+ alc[len - 1] = '\0';
name = alc;
copy = true;
}