--- src/shared/fileio.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/shared/fileio.c b/src/shared/fileio.c index 01b803c..909a58f 100644 --- a/src/shared/fileio.c +++ b/src/shared/fileio.c @@ -662,6 +662,8 @@ int get_status_field(const char *filename, const char *pattern, char **field) { assert(filename); assert(field); + assert(pattern); + assert(strlen(pattern) >= 2); r = read_full_file(filename, &status, NULL); if (r < 0) @@ -677,13 +679,11 @@ int get_status_field(const char *filename, const char *pattern, char **field) { * 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"); - /* Back off one char if there's nothing but whitespace - and zeros */ - if (!*t) - t --; - } + t += strspn(t, WHITESPACE "0"); + /* Back off to last '0' if there's nothing but whitespace + and zeros */ + if (*(t - 1) == '\n') + t -= 2; len = strcspn(t, WHITESPACE); -- 1.8.4.rc3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel