[PATCH] Fix parsing of /sys/devices/system/cpu/online (bug 27038)

Florian Weimer fweimer@redhat.com
Wed Dec 9 14:15:17 GMT 2020


* Andreas Schwab:

> The file contains comma-separated ranges, not spaces.

Bug 27038 is a duplicate of bug 25859.

> ---
>  sysdeps/unix/sysv/linux/getsysstats.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
> index 1ef077f9af..a9069b7056 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);
>  
> -- 

The actual patch looks okay to me.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill



More information about the Libc-alpha mailing list