X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Ffileio.c;h=603a1c7b38755ad35fec95f48915367341776361;hp=01b803c82f833bd5289d9a96ec7de4db1ce7a483;hb=1e5413f74faa378172d556e5dec35ab55de16bbf;hpb=1864b0e39505cd44a98eee61c97916b86491c0b4 diff --git a/src/shared/fileio.c b/src/shared/fileio.c index 01b803c82..603a1c7b3 100644 --- a/src/shared/fileio.c +++ b/src/shared/fileio.c @@ -24,6 +24,7 @@ #include "util.h" #include "strv.h" #include "utf8.h" +#include "ctype.h" int write_string_to_file(FILE *f, const char *line) { errno = 0; @@ -672,16 +673,18 @@ int get_status_field(const char *filename, const char *pattern, char **field) { return -ENOENT; t += strlen(pattern); - /* Also skip zeros, because when this is used for capabilities, - * we don't want the zeros. This way the same capability set - * always maps to the same string, irrespective of the total - * capability set size. For other numbers it shouldn't matter. - */ if (*t) { - t += strspn(t, WHITESPACE "0"); + t += strspn(t, " \t"); + + /* Also skip zeros, because when this is used for + * capabilities, we don't want the zeros. This way the + * same capability set always maps to the same string, + * irrespective of the total capability set size. For + * other numbers it shouldn't matter. */ + t += strspn(t, "0"); /* Back off one char if there's nothing but whitespace and zeros */ - if (!*t) + if (!*t || isspace(*t)) t --; }