From f28d605a0d0294e0bd6e19e155f7b62d3fcc6b89 Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Wed, 11 Apr 2018 00:00:00 -0500 Subject: [PATCH] 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 --- NEWS | 1 + free.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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; }