binfmt: fgets() excorcism

Also, let's not claim we ignored errors when we don't.
This commit is contained in:
Lennart Poettering 2018-10-18 13:33:19 +02:00
parent 7452c3ff52
commit 741d2cb533

View file

@ -73,25 +73,25 @@ static int apply_file(const char *path, bool ignore_enoent) {
if (ignore_enoent && r == -ENOENT)
return 0;
return log_error_errno(r, "Failed to open file '%s', ignoring: %m", path);
return log_error_errno(r, "Failed to open file '%s': %m", path);
}
log_debug("apply: %s", path);
for (;;) {
char l[LINE_MAX], *p;
_cleanup_free_ char *line = NULL;
char *p;
int k;
if (!fgets(l, sizeof(l), f)) {
if (feof(f))
break;
k = read_line(f, LONG_LINE_MAX, &line);
if (k < 0)
return log_error_errno(k, "Failed to read file '%s': %m", path);
if (k == 0)
break;
return log_error_errno(errno, "Failed to read file '%s', ignoring: %m", path);
}
p = strstrip(l);
if (!*p)
p = strstrip(line);
if (isempty(p))
continue;
if (strchr(COMMENTS "\n", *p))
if (strchr(COMMENTS, p[0]))
continue;
k = apply_rule(p);