From 58bff862fcca471537fbfa8c40574a27c9de818d Mon Sep 17 00:00:00 2001 From: Craig Small Date: Tue, 10 Apr 2018 21:20:25 +1000 Subject: [PATCH] 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 --- 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 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; } -- 2.40.0