[dpdk-dev] app/test_acl: fix division by float zero
Commit Message
Fix issue reported by Coverity.
Coverity ID 13240
This could cause an immediate crash or incorrect computation.
In search_ip5tuples: An expression which may be zero is used
as a divisor in floating-point arithmetic.
divide_by_zero: In expression (long double)tm / pkt,
division by expression pkt which may be zero has undefined behavior.
Fixes: 26c057ab6c45 ("acl: new test-acl application")
Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
---
app/test-acl/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Mrzyglod, DanielX T
> Sent: Friday, April 22, 2016 5:01 PM
> To: Ananyev, Konstantin
> Cc: dev@dpdk.org; Mrzyglod, DanielX T
> Subject: [PATCH] app/test_acl: fix division by float zero
>
> Fix issue reported by Coverity.
> Coverity ID 13240
>
> This could cause an immediate crash or incorrect computation.
>
> In search_ip5tuples: An expression which may be zero is used
> as a divisor in floating-point arithmetic.
>
> divide_by_zero: In expression (long double)tm / pkt,
> division by expression pkt which may be zero has undefined behavior.
>
> Fixes: 26c057ab6c45 ("acl: new test-acl application")
>
> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
> ---
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > Fix issue reported by Coverity.
> > Coverity ID 13240
> >
> > This could cause an immediate crash or incorrect computation.
> >
> > In search_ip5tuples: An expression which may be zero is used
> > as a divisor in floating-point arithmetic.
> >
> > divide_by_zero: In expression (long double)tm / pkt,
> > division by expression pkt which may be zero has undefined behavior.
> >
> > Fixes: 26c057ab6c45 ("acl: new test-acl application")
> >
> > Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
>
> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Applied, thanks
@@ -901,7 +901,7 @@ search_ip5tuples(__attribute__((unused)) void *arg)
"%s @lcore %u: %" PRIu32 " iterations, %" PRIu64 " pkts, %"
PRIu32 " categories, %" PRIu64 " cycles, %#Lf cycles/pkt\n",
__func__, lcore, i, pkt, config.run_categories,
- tm, (long double)tm / pkt);
+ tm, (pkt == 0) ? 0 : (long double)tm / pkt);
return 0;
}