From: Andreas Schwab Date: Tue, 8 Dec 2020 18:17:41 +0000 (+0100) Subject: Fix parsing of /sys/devices/system/cpu/online (bug 25859) X-Git-Tag: glibc-2.33~214 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5eeca8cfd9d0fd92b5633a88901d9ff27f2b496;p=thirdparty%2Fglibc.git Fix parsing of /sys/devices/system/cpu/online (bug 25859) The file contains comma-separated ranges, not spaces. --- diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c index 1ef077f9af4..a9069b70568 100644 --- a/sysdeps/unix/sysv/linux/getsysstats.c +++ b/sysdeps/unix/sysv/linux/getsysstats.c @@ -143,6 +143,7 @@ __get_nprocs (void) char *re = buffer_end; const int flags = O_RDONLY | O_CLOEXEC; + /* This file contains comma-separated ranges. */ int fd = __open_nocancel ("/sys/devices/system/cpu/online", flags); char *l; int result = 0; @@ -175,10 +176,10 @@ __get_nprocs (void) result += m - n + 1; l = endp; - while (l < re && isspace (*l)) + if (l < re && *l == ',') ++l; } - while (l < re); + while (l < re && *l != '\n'); __close_nocancel_nostatus (fd);