From 859a7690a6472ca6d700d29693d986125d11e4b6 Mon Sep 17 00:00:00 2001
From: Mateusz Poszwa <old4@o2.pl>
Date: Thu, 28 Jun 2012 11:22:00 +0200
Subject: Avoid division by zero when calculating CPU usage.

---
 src/print_cpu_usage.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src')

diff --git a/src/print_cpu_usage.c b/src/print_cpu_usage.c
index 7820840..ed17db3 100644
--- a/src/print_cpu_usage.c
+++ b/src/print_cpu_usage.c
@@ -40,7 +40,7 @@ void print_cpu_usage(yajl_gen json_gen, char *buffer, const char *format) {
         curr_total = curr_user + curr_nice + curr_system + curr_idle;
         diff_idle  = curr_idle - prev_idle;
         diff_total = curr_total - prev_total;
-        diff_usage = (1000 * (diff_total - diff_idle)/diff_total + 5)/10;
+        diff_usage = (diff_total ? (1000 * (diff_total - diff_idle)/diff_total + 5)/10 : 0);
         prev_total = curr_total;
         prev_idle  = curr_idle;
 #elif defined(__FreeBSD__) || defined(__OpenBSD__)
@@ -71,7 +71,7 @@ void print_cpu_usage(yajl_gen json_gen, char *buffer, const char *format) {
         curr_total = curr_user + curr_nice + curr_system + curr_idle;
         diff_idle  = curr_idle - prev_idle;
         diff_total = curr_total - prev_total;
-        diff_usage = (1000 * (diff_total - diff_idle)/diff_total + 5)/10;
+        diff_usage = (diff_total ? (1000 * (diff_total - diff_idle)/diff_total + 5)/10 : 0);
         prev_total = curr_total;
         prev_idle  = curr_idle;
 #else
-- 
cgit v1.2.3