From 8ae29228a8bae50867d3729c1183b0734176c7d3 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 18 Oct 2018 16:14:59 +0200 Subject: [PATCH] bus-creds: FOREACH_LINE excorcism --- src/libsystemd/sd-bus/bus-creds.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libsystemd/sd-bus/bus-creds.c b/src/libsystemd/sd-bus/bus-creds.c index a6dda16876..81d97ff968 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:");