diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2023-10-09 17:41:02 +0100 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2023-10-11 08:46:39 +0100 |
commit | 60cb16c0d87ae0939f4c53c2444a168fdf790a44 (patch) | |
tree | e9cfad16ae69a32484148f72aff94164eb84a2df /contrib | |
parent | a392277dcf00e7bf6f7a0ecc9075ea154532c436 (diff) | |
download | qemu-60cb16c0d87ae0939f4c53c2444a168fdf790a44.zip qemu-60cb16c0d87ae0939f4c53c2444a168fdf790a44.tar.gz qemu-60cb16c0d87ae0939f4c53c2444a168fdf790a44.tar.bz2 |
contrib/plugins: fix coverity warning in cache
Coverity complains that appends_stats_line can be fed a 0 leading
to the undefined behaviour of a divide by 0.
Fixes: CID 1519044
Fixes: CID 1519047
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-24-alex.bennee@linaro.org>
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/plugins/cache.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/contrib/plugins/cache.c b/contrib/plugins/cache.c index 4fca3ed..9e7ade3 100644 --- a/contrib/plugins/cache.c +++ b/contrib/plugins/cache.c @@ -535,15 +535,13 @@ static void caches_free(Cache **caches) } } -static void append_stats_line(GString *line, uint64_t l1_daccess, - uint64_t l1_dmisses, uint64_t l1_iaccess, - uint64_t l1_imisses, uint64_t l2_access, - uint64_t l2_misses) +static void append_stats_line(GString *line, + uint64_t l1_daccess, uint64_t l1_dmisses, + uint64_t l1_iaccess, uint64_t l1_imisses, + uint64_t l2_access, uint64_t l2_misses) { - double l1_dmiss_rate, l1_imiss_rate, l2_miss_rate; - - l1_dmiss_rate = ((double) l1_dmisses) / (l1_daccess) * 100.0; - l1_imiss_rate = ((double) l1_imisses) / (l1_iaccess) * 100.0; + double l1_dmiss_rate = ((double) l1_dmisses) / (l1_daccess) * 100.0; + double l1_imiss_rate = ((double) l1_imisses) / (l1_iaccess) * 100.0; g_string_append_printf(line, "%-14" PRIu64 " %-12" PRIu64 " %9.4lf%%" " %-14" PRIu64 " %-12" PRIu64 " %9.4lf%%", @@ -554,8 +552,8 @@ static void append_stats_line(GString *line, uint64_t l1_daccess, l1_imisses, l1_iaccess ? l1_imiss_rate : 0.0); - if (use_l2) { - l2_miss_rate = ((double) l2_misses) / (l2_access) * 100.0; + if (l2_access && l2_misses) { + double l2_miss_rate = ((double) l2_misses) / (l2_access) * 100.0; g_string_append_printf(line, " %-12" PRIu64 " %-11" PRIu64 " %10.4lf%%", l2_access, |