On Fri, 1 Mar 2019 10:48:58 +0300 Andrew Rybchenko <arybche...@solarflare.com> wrote:
> On 3/1/19 1:47 AM, Stephen Hemminger wrote: > > Don't need to use snprintf for simple name copy. > > > > Signed-off-by: Stephen Hemminger <step...@networkplumber.org> > > --- > > lib/librte_ethdev/rte_ethdev.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c > > index 95889ed206db..8bd54dcf58c1 100644 > > --- a/lib/librte_ethdev/rte_ethdev.c > > +++ b/lib/librte_ethdev/rte_ethdev.c > > @@ -459,7 +459,7 @@ rte_eth_dev_allocate(const char *name) > > } > > > > eth_dev = eth_dev_get(port_id); > > - snprintf(eth_dev->data->name, sizeof(eth_dev->data->name), "%s", name); > > + strlcpy(eth_dev->data->name, name, RTE_ETH_NAME_MAX_LEN); > > Why is sizeof() substituted with RTE_ETH_NAME_MAX_LEN? Same thing, I just wanted to make the length obvious to the reader. > I thought that sizeof() is the first choice in such cases since it is a > bit more > safer vs possible changes in the code. > > BTW, wouldn't it be more friendly to check name length on entry and > reject if it is too long? (and same for rte_eth_dev_create()) It is impossible for name to long since since both structures are the same. > I agree that strlcpy() should be used anyway. > > > eth_dev->data->port_id = port_id; > > eth_dev->data->mtu = ETHER_MTU; > > >