getloadavg function increases elem counter twice: for (elem = 0; elem < nelem; elem++) // Here { // ...
loadavg[elem++] = numerator / denominator; // And here } It leads to wrong Load Average in uptime command: $ cat /proc/loadavg 0.01 0.02 0.00 1/122 992 $ uptime 18:36:59 up 6:20, 0 users, load average: 0,01, 0,00, 0,02 This patch fixes this bug --- lib/getloadavg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/getloadavg.c b/lib/getloadavg.c index 61307d377..aeb7070cc 100644 --- a/lib/getloadavg.c +++ b/lib/getloadavg.c @@ -550,7 +550,7 @@ getloadavg (double loadavg[], int nelem) for (ptr++; '0' <= *ptr && *ptr <= '9'; ptr++) numerator = 10 * numerator + (*ptr - '0'), denominator *= 10; - loadavg[elem++] = numerator / denominator; + loadavg[elem] = numerator / denominator; } return elem; -- 2.26.2