[PATCH] fwts: cpufreq: fix theoretical division by zero (LP: #1466905)

Colin King colin.king at canonical.com
Fri Jun 19 15:09:58 UTC 2015


From: Colin Ian King <colin.king at canonical.com>

CoverityScan reports a potential division by zero error:

528 performed_tests++;
   CID 1299399 (#1 of 2): Division or modulo by zero (DIVIDE_BY_ZERO)
529 fwts_progress(fw, 100 * performed_tests/n_tests);

it is noteworthy that n_tests is never zero because it is related
to the number of CPUs online which is always going to be > 0, but
Coverity does not know this and also we better ensure we check for
this division by zero since the CPU online data may be not available
and there is a theoretical risk of n_tests being zero.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/cpu/cpufreq/cpufreq.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/cpu/cpufreq/cpufreq.c b/src/cpu/cpufreq/cpufreq.c
index c6d6a9d..40f6a30 100644
--- a/src/cpu/cpufreq/cpufreq.c
+++ b/src/cpu/cpufreq/cpufreq.c
@@ -526,7 +526,8 @@ static int cpufreq_test_sw_any(fwts_framework *fw)
 		high_perf = fwts_cpu_benchmark_best_result(&result);
 
 		performed_tests++;
-		fwts_progress(fw, 100 * performed_tests/n_tests);
+		if (n_tests)
+			fwts_progress(fw, 100 * performed_tests / n_tests);
 		/*
 		 * now set all the others to low again; sw_any will cause
 		 * the core in question to now also get the low speed, while
@@ -550,7 +551,8 @@ static int cpufreq_test_sw_any(fwts_framework *fw)
 			ok = false;
 		}
 		performed_tests++;
-		fwts_progress(fw, 100 * performed_tests/n_tests);
+		if (n_tests)
+			fwts_progress(fw, 100 * performed_tests / n_tests);
 	}
 
 	if (!ok)
-- 
2.1.4




More information about the fwts-devel mailing list