From: Jim Warner Date: Wed, 11 Apr 2018 05:00:00 +0000 (-0500) Subject: free: fix scaling on 32-bit systems _______ (catch up) X-Git-Tag: v4.0.0~612 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f28d605a0d0294e0bd6e19e155f7b62d3fcc6b89;p=procps-ng free: fix scaling on 32-bit systems _______ (catch up) --------------- Original Master Branch Commit Message: 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 Signed-off-by: Jim Warner --- 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 d3071df2..d10ec6c8 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; }