Subject: Re: [PATCH] net: network device name ifalias support

From: Stephen Hemminger <[email-masked]>
Date: Mon, 22 Sep 2008 20:47:18 -0700

On Mon, 22 Sep 2008 19:44:23 -0700 (PDT)
David Miller <[email-masked]> wrote:

> From: Stephen Hemminger <[email-masked]>
> Date: Mon, 22 Sep 2008 17:43:46 -0700
> 
> > +	dev->ifalias = krealloc(dev->ifalias, len+1, GFP_KERNEL);
> > +	if (!dev->ifalias)
> > +		return -ENOMEM;
> > +
> > +	strlcpy(dev->ifalias, alias, len+1);
> > +	return len;
> 
> It might be cleaner to use kstrdup() and free the old pointer, if
> any, here.
> 
> 	char *new = kstrdup(alias, GFP_KERNEL);
> 	if (!new)
> 		return -ENOMEM;
> 	kfree(dev->ifalias);
> 	dev->ifalias = new;
> 	return len;
> 
> That way all of this "len+1" stuff goes away.

Won't work because input string is not necessarily null-terminated.
In the sysfs case we want there is a trailing newline, and this
way avoids copying once there and then copying again.