File 001-Avoid-32-bit-overflow-for-rates-when-calculating-bar.patch of Package iftop

http://lists.beasts.org/pipermail/iftop-users/2014-March/000414.html

From: Hans Fugal <hans@fugal.net>
Date: Fri, 7 Mar 2014 13:22:04 -0800
Subject: [PATCH 1/3] Avoid 32-bit overflow for rates when calculating bar
 length

Avoid 32-bit overflow by using double instead of int. uint64_t would be
another option but these are only ever used in conjunction with floats.
(float was also an option)
---
 ui.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/ui.c b/ui.c
index 57ca6c0..8a3b9d0 100644
--- a/ui.c
+++ b/ui.c
@@ -71,7 +71,8 @@ int dontshowdisplay = 0;
 
 /* Barchart scales. */
 static struct {
-    int max, interval;
+    double max;
+    int interval;
 } scale[] = {
         {      64000,     10 },     /* 64 kbit/s */
         {     128000,     10 },
@@ -105,7 +106,7 @@ static float get_max_bandwidth() {
 }
 
 /* rate in bits */
-static int get_bar_length(const int rate) {
+static int get_bar_length(const double rate) {
     float l;
     if (rate <= 0)
         return 0;
openSUSE Build Service is sponsored by