[PATCH] use xstrdup and concat more
Trevor Saunders
tbsaunde@tbsaunde.org
Mon Apr 25 13:56:00 GMT 2016
On Mon, Apr 25, 2016 at 10:31:36PM +0930, Alan Modra wrote:
> On Sun, Apr 24, 2016 at 03:44:56AM -0400, tbsaunde+binutils@tbsaunde.org wrote:
> > --- a/gas/config/obj-elf.c
> > +++ b/gas/config/obj-elf.c
> > @@ -949,9 +949,7 @@ obj_elf_section_name (void)
> > return NULL;
> > }
> >
> > - name = (char *) xmalloc (end - input_line_pointer + 1);
> > - memcpy (name, input_line_pointer, end - input_line_pointer);
> > - name[end - input_line_pointer] = '\0';
> > + name = xstrndup (input_line_pointer, end - input_line_pointer);
> >
> > while (flag_sectname_subst)
> > {
>
> Is this a good idea, here, and in other places where the original uses
> memcpy and strlen was not called to find the string length? I'm
> thinking that xstrndup will be needlessly calling strlen.
I guess that's true, I'm not sure if that really matters though?
> Hmm, maybe use xmemdup? Mind you, the xmemdup implementation isn't
> ideal due to zeroing with xcalloc, but that could be fixed.
We'd still have to be careful to null terminate ourselves, but I guess
that would work. Changing xmemdup scares me a little, but I can't
think of a way it could be incorrect to use xmalloc there.
Trev
>
> --
> Alan Modra
> Australia Development Lab, IBM
More information about the Binutils
mailing list