From: Craig Small Date: Tue, 10 Apr 2018 11:20:25 +0000 (+1000) Subject: free: fix scaling on 32-bit systems X-Git-Tag: v3.3.14~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=58bff862fcca471537fbfa8c40574a27c9de818d;p=procps-ng free: fix scaling on 32-bit systems Systems that have a 32-bit long would give incorrect results in free. References: Issue #89 https://www.freelists.org/post/procps/frees-scale-size-broken-with-32bit-long --- diff --git a/NEWS b/NEWS index f9ee69a7..822a88be 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,7 @@ procps-ng-3.3.14 ---------------- * pgrep: Don't segfault on non match Debian #894917 * pgrep/pkill: Revert so matches all namespaces issue #91 + * free: Fix scaling on 32-bit systems issue #89 procps-ng-3.3.13 ---------------- diff --git a/free.c b/free.c index 08cb73bd..70ecb127 100644 --- a/free.c +++ b/free.c @@ -133,7 +133,7 @@ static const char *scale_size(unsigned long size, int flags, struct commandline_ if (args.exponent > 1) { /* In desired scale. */ snprintf(buf, sizeof(buf), "%ld", - (long int)((size * 1024) / power(base, args.exponent-1)) + (long int)((size * 1024.0) / power(base, args.exponent-1)) ); return buf; }