From: Lennart Poettering Date: Thu, 18 Oct 2018 14:14:59 +0000 (+0200) Subject: bus-creds: FOREACH_LINE excorcism X-Git-Tag: v240~513^2~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8ae29228a8bae50867d3729c1183b0734176c7d3;p=thirdparty%2Fsystemd.git bus-creds: FOREACH_LINE excorcism --- diff --git a/src/libsystemd/sd-bus/bus-creds.c b/src/libsystemd/sd-bus/bus-creds.c index a6dda16876c..81d97ff968b 100644 --- a/src/libsystemd/sd-bus/bus-creds.c +++ b/src/libsystemd/sd-bus/bus-creds.c @@ -803,10 +803,15 @@ int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, pid_t pid, pid_t tid) { else if (!IN_SET(errno, EPERM, EACCES)) return -errno; } else { - char line[LINE_MAX]; - FOREACH_LINE(line, f, return -errno) { - truncate_nl(line); + for (;;) { + _cleanup_free_ char *line = NULL; + + r = read_line(f, LONG_LINE_MAX, &line); + if (r < 0) + return r; + if (r == 0) + break; if (missing & SD_BUS_CREDS_PPID) { p = startswith(line, "PPid:");