This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: strcpy -> memcpy
Elias Athanasopoulos <eathan@otenet.gr> writes:
> I fixed some similar cases in gas. You might want to include them.
>
> Elias
>
> ChangeLog/gas
>
> 2002-06-25 Elias Athanasopoulos <eathan@otenet.gr>
>
> * ecoff.c (get_tag): Replace strcpy with memcpy.
> (ecoff_directive_def): Likewise.
> (ecoff_directive_tag): Likewise.
> * listing.c (file_info): Likewise.
> * hash.c (what): Likewise.
>
> --- ecoff.c.orig Tue Jun 25 19:17:30 2002
> +++ ecoff.c Tue Jun 25 19:39:29 2002
> @@ -2036,9 +2036,13 @@
> if (hash_ptr == (shash_t *) NULL)
> {
> char *perm;
> + size_t len;
>
> - perm = xmalloc ((unsigned long) (strlen (tag) + 1));
> - strcpy (perm, tag);
> + len = strlen (tag) + 1;
> + perm = xmalloc (len);
> + if (!perm)
> + return false;
> + memcpy (perm, tag, len);
> hash_ptr = allocate_shash ();
> err = hash_insert (tag_hash, perm, (char *) hash_ptr);
> if (err)
Now this is a place where we should use xstrdup. And note that
xmalloc can not return NULL, so there is no reason for check for it.
Ian