[v1] examples/l3fwd-power: fix telemetry coverity issue
Checks
Commit Message
6 issues caught by Coverity 343465
* Possible divide by zero on 3 lines
* Convert to float then back to int, losing precision on 3 lines
This patch modifies the code so that it only assigns calculated
values if the divisor is > 0, otherwise sets metrics to zero.
Also removes the un-needed round() function.
Coverity issue: 343465
Fixes: 609e79841fcf ("examples/l3fwd-power: add telemetry mode")
Signed-off-by: David Hunt <david.hunt@intel.com>
---
examples/l3fwd-power/main.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
Comments
10/07/2019 17:26, David Hunt:
> 6 issues caught by Coverity 343465
> * Possible divide by zero on 3 lines
> * Convert to float then back to int, losing precision on 3 lines
>
> This patch modifies the code so that it only assigns calculated
> values if the divisor is > 0, otherwise sets metrics to zero.
> Also removes the un-needed round() function.
>
> Coverity issue: 343465
> Fixes: 609e79841fcf ("examples/l3fwd-power: add telemetry mode")
> Signed-off-by: David Hunt <david.hunt@intel.com>
Applied, thanks
@@ -2100,9 +2100,16 @@ update_telemetry(__attribute__((unused)) struct rte_timer *tim,
rte_spinlock_unlock(&stats[lcore_id].telemetry_lock);
}
- values[0] = round(app_eps/count);
- values[1] = round(app_fps/count);
- values[2] = round(app_br/count);
+ if (count > 0) {
+ values[0] = app_eps/count;
+ values[1] = app_fps/count;
+ values[2] = app_br/count;
+ } else {
+ values[0] = 0;
+ values[1] = 0;
+ values[2] = 0;
+ }
+
ret = rte_metrics_update_values(RTE_METRICS_GLOBAL, telstats_index,
values, RTE_DIM(values));
if (ret < 0)