From: Lennart Poettering Date: Thu, 18 Oct 2018 14:21:05 +0000 (+0200) Subject: tmpfiles: FOREACH_LINE excorcism X-Git-Tag: v240~513^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F10450%2Fhead;p=thirdparty%2Fsystemd.git tmpfiles: FOREACH_LINE excorcism --- diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index d7e02c400e1..7819d96c672 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -2979,10 +2979,9 @@ static int parse_argv(int argc, char *argv[]) { static int read_config_file(char **config_dirs, const char *fn, bool ignore_enoent, bool *invalid_config) { _cleanup_fclose_ FILE *_f = NULL; - FILE *f; - char line[LINE_MAX]; Iterator iterator; unsigned v = 0; + FILE *f; Item *i; int r = 0; @@ -3006,10 +3005,17 @@ static int read_config_file(char **config_dirs, const char *fn, bool ignore_enoe f = _f; } - FOREACH_LINE(line, f, break) { + for (;;) { + _cleanup_free_ char *line = NULL; + bool invalid_line = false; char *l; int k; - bool invalid_line = false; + + k = read_line(f, LONG_LINE_MAX, &line); + if (k < 0) + return log_error_errno(k, "Failed to read '%s': %m", fn); + if (k == 0) + break; v++;