[dpdk-dev] [PATCH] app/test-compress-perf: fix reliance on integer endianness

Jozwiak, TomaszX tomaszx.jozwiak at intel.com
Mon May 20 16:25:26 CEST 2019


Hi Fiona,

> -----Original Message-----
> From: Trahe, Fiona
> Sent: Monday, May 20, 2019 4:06 PM
> To: Jozwiak, TomaszX <tomaszx.jozwiak at intel.com>; dev at dpdk.org;
> shallyv at marvell.com; stable at dpdk.org
> Cc: Trahe, Fiona <fiona.trahe at intel.com>; Trybula, ArturX
> <arturx.trybula at intel.com>
> Subject: RE: [PATCH] app/test-compress-perf: fix reliance on integer
> endianness
> 
> HI Tomasz,
> 
> > -----Original Message-----
> > From: Jozwiak, TomaszX
> > Sent: Monday, May 20, 2019 2:26 PM
> > To: dev at dpdk.org; Trahe, Fiona <fiona.trahe at intel.com>; Jozwiak,
> > TomaszX <tomaszx.jozwiak at intel.com>; shallyv at marvell.com;
> > stable at dpdk.org
> > Subject: [PATCH] app/test-compress-perf: fix reliance on integer
> > endianness
> >
> > This patch fixes coverity issue:
> > Reliance on integer endianness (INCOMPATIBLE_CAST) in
> parse_window_sz
> > function.
> >
> > Coverity issue: 328524
> > Fixes: e0b6287c035d ("app/compress-perf: add parser")
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak at intel.com>
> > ---
> >  app/test-compress-perf/comp_perf_options_parse.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/app/test-compress-perf/comp_perf_options_parse.c
> > b/app/test-compress- perf/comp_perf_options_parse.c index
> > 2fb6fb4..56ca580 100644
> > --- a/app/test-compress-perf/comp_perf_options_parse.c
> > +++ b/app/test-compress-perf/comp_perf_options_parse.c
> > @@ -364,13 +364,15 @@ parse_max_num_sgl_segs(struct
> comp_test_data
> > *test_data, const char *arg)  static int  parse_window_sz(struct
> > comp_test_data *test_data, const char *arg)  {
> > -	int ret = parse_uint16_t((uint16_t *)&test_data->window_sz, arg);
> > +	uint16_t tmp;
> > +	int ret = parse_uint16_t(&tmp, arg);
> >
> >  	if (ret) {
> >  		RTE_LOG(ERR, USER1, "Failed to parse window size\n");
> >  		return -1;
> >  	}
> >
> > +	test_data->window_sz = (int)tmp;
> >  	return 0;
> >  }
> [Fiona] I expect this fixes this coverity issue - but will it result in another one?
> window_sz on the xform is uint8_t - so this int will get truncated later, and
> there's no cast done at that point.
> Would it be better to add a new parse_uint8_t fn and change test-data-
> >window_sz to a unit8_t?
> Or add that cast?
> [Tomek] I measn it's ok. There's a check inside comp_perf_check_capabilities function. If the value from test_data->window_sz > cap->window_size we have a fail. Also during parsing there's a check is value from command line is between 0 and UINT16_MAX, so in my opinion all cases are tested. The point is there's only one place where we're parsing uint8_t value.  parse_uint8_t function will be especially for that.







More information about the dev mailing list