[dpdk-dev] [PATCH 4/5] replace snprintf with strlcpy without adding extra include

Thomas Monjalon thomas at monjalon.net
Thu Apr 4 20:05:06 CEST 2019


03/04/2019 17:56, Bruce Richardson:
> On Wed, Apr 03, 2019 at 08:51:32AM -0700, Stephen Hemminger wrote:
> > On Wed,  3 Apr 2019 15:45:04 +0100
> > Bruce Richardson <bruce.richardson at intel.com> wrote:
> > 
> > > diff --git a/lib/librte_ring/rte_ring.c b/lib/librte_ring/rte_ring.c
> > > index d215acecc..a542f6f5d 100644
> > > --- a/lib/librte_ring/rte_ring.c
> > > +++ b/lib/librte_ring/rte_ring.c
> > > @@ -78,7 +78,7 @@ rte_ring_init(struct rte_ring *r, const char *name, unsigned count,
> > >  
> > >  	/* init the ring structure */
> > >  	memset(r, 0, sizeof(*r));
> > > -	ret = snprintf(r->name, sizeof(r->name), "%s", name);
> > > +	ret = strlcpy(r->name, name, sizeof(r->name));
> > >  	if (ret < 0 || ret >= (int)sizeof(r->name))
> > 
> > I would rather use the name length that is part of the header file.
> > 
> > 	if (strnlen(name, RTE_RING_NAMESIZE) == RTE_RING_NAMESIZE)
> > 		return -ENAMETOOLONG;
> > 
> > 	strlcpy(r->name, name, sizeof(r->name))
> >
> Yes, though honestly it's a matter of preference. Since this was a scripted
> replacement each change wasn't checked in too much detail other than a
> cursory check for correctness.

I prefer using sizeof/strlen rather than the constant used for allocation.
Reasons are:
	- it's easier to understand the intent
	- it's easier to change how the allocation size is chosen






More information about the dev mailing list