[dpdk-dev] [PATCH] xstats: fix behavior when a null array is provided

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Apr 6 12:13:38 CEST 2016


2016-04-05 11:06, Van Haaren, Harry:
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Olivier Matz
> > Subject: [dpdk-dev] [PATCH] xstats: fix behavior when a null array is provided
> > 
> > Coverity reports an issue in ethdev:
> > 
> >   *** CID 124562:  Null pointer dereferences  (FORWARD_NULL)
> >   /lib/librte_ether/rte_ethdev.c: 1518 in rte_eth_xstats_get()
> >   1512
> >   1513		/* global stats */
> >   1514     	for (i = 0; i < RTE_NB_STATS; i++) {
> >   1515     	    stats_ptr = RTE_PTR_ADD(&eth_stats,
> >   1516
> >   rte_stats_strings[i].offset);
> >   1517			val = *stats_ptr;
> >   >>>     CID 124562:  Null pointer dereferences  (FORWARD_NULL)
> >   >>>     Dereferencing null pointer "xstats".
> >   1518     	      	   snprintf(xstats[count].name,
> >   sizeof(xstats[count].name),
> >   1519				"%s", rte_stats_strings[i].name);
> >   1520     			      xstats[count++].value = val;
> >   1521     			      }
> >   1522
> >   1523		/* per-rxq stats */
> > 
> > If a user calls rte_eth_xstats_get(portid, NULL, n) with n != 0,
> > it may result in a crash. Although the API documentation says that
> > n is the size of the table and xstats can be NULL if n == 0, we
> > can add an additional check here to make Coverity happy.
> > 
> > In that case, the return value is the same than when n == 0 is
> > passed, it returns the number of statistics.
> > 
> > Fixes: ce757f5c9a ("ethdev: new method to retrieve extended statistics")
> > Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
> 
> I'm unsure on how verbose commit messages are ideal,
> but there's certainly enough description here :)
> 
> Acked-by: Harry van Haaren <harry.van.haaren at intel.com>

Applied, thanks


More information about the dev mailing list