]> granicus.if.org Git - procps-ng/commit
top: protect against the anomalous 'Mem' graph display
authorJim Warner <james.warner@comcast.net>
Thu, 17 Aug 2017 06:11:11 +0000 (01:11 -0500)
committerCraig Small <csmall@enc.com.au>
Sat, 19 Aug 2017 10:55:46 +0000 (20:55 +1000)
commita2ceb95e2a7d5bf0270f0d342d2edb560f5cfcf4
tree7e10e8a5c5bf06376fb129afc6af1743c1c48634
parente3c729adfa51fac9b2f812a80e9f279b306fb774
top: protect against the anomalous 'Mem' graph display

Until this patch, top falsely assumed that there would
always be some (small) amount of physical memory after
subtracting 'used' and 'available' from the total. But
as the issue referenced below attests, a sum of 'used'
and 'available' might exceed that total memory amount.

I'm not sure if this is a problem with our calculation
of the 'used' amount, a flaw in the kernel 'available'
algorithms or some other reason I cannot even imagine.

Anyway, this patch protects against such a contingency
through the following single line addition of new code
. if (pct_used + pct_misc > 100.0 || pct_misc < 0) ...

The check for less than zero is not actually necessary
as long as the source numbers remain unsigned. However
should they ever become signed, we'll have protection.

[ Most of the changes in this commit simply separate ]
[ a variable's definition from its associated logic. ]

Reference(s):
https://gitlab.com/procps-ng/procps/issues/64

Signed-off-by: Jim Warner <james.warner@comcast.net>
NEWS
top/top.c