[dpdk-dev] [PATCH v3] ethdev: check for invalid device name

Stephen Hemminger stephen at networkplumber.org
Wed Mar 20 18:52:26 CET 2019


On Wed, 20 Mar 2019 14:28:22 +0000
Ferruh Yigit <ferruh.yigit at intel.com> wrote:

> On 3/14/2019 4:20 PM, Stephen Hemminger wrote:
> > Do not allow creating a ethernet device with a name over the
> > allowed maximum (or zero length). This is safer than silently truncating
> > which is what happens now.
> > 
> > Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> > Acked-by: Andrew Rybchenko <arybchenko at solarflare.com>
> > ---
> > v3 -- fix whitespace issue
> > 
> >  lib/librte_ethdev/rte_ethdev.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> > index 85c1794968dd..cf69daaf3224 100644
> > --- a/lib/librte_ethdev/rte_ethdev.c
> > +++ b/lib/librte_ethdev/rte_ethdev.c
> > @@ -438,6 +438,18 @@ rte_eth_dev_allocate(const char *name)
> >  {
> >  	uint16_t port_id;
> >  	struct rte_eth_dev *eth_dev = NULL;
> > +	size_t name_len;
> > +
> > +	name_len = strnlen(name, RTE_ETH_NAME_MAX_LEN);  
> 
> 'strlen' does not check against NULL pointer and it will crash if NULL provided.
> 
> This is internal API, so the input is not completely out of our control but
> still as an API if we need to check zero length, shouldn't we check for NULL
> pointer as well?

Maybe, but none of the other DPDK API's check for NULL in name fields.
Probably best to just crash.


More information about the dev mailing list