diff options
| author | Lennart Poettering <lennart@poettering.net> | 2018-10-18 16:08:13 +0200 |
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2018-10-18 16:23:45 +0200 |
| commit | d2b39cb6062d446b2542359cb31beff9eecff70c (patch) | |
| tree | ca8a5bc47107e78f775208f4726acf1301e17e18 /src/basic/cgroup-util.c | |
| parent | 51a85e5ec2bd009f6b14558247109035a1c35ff8 (diff) | |
| download | systemd-d2b39cb6062d446b2542359cb31beff9eecff70c.tar.gz | |
cgroup-util: FOREACH_LINE() excorcism
Diffstat (limited to 'src/basic/cgroup-util.c')
| -rw-r--r-- | src/basic/cgroup-util.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index b725a17761..e010fc7b5a 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -985,10 +985,9 @@ int cg_get_xattr(const char *controller, const char *path, const char *name, voi int cg_pid_get_path(const char *controller, pid_t pid, char **path) { _cleanup_fclose_ FILE *f = NULL; - char line[LINE_MAX]; const char *fs, *controller_str; + int unified, r; size_t cs = 0; - int unified; assert(path); assert(pid >= 0); @@ -1018,10 +1017,15 @@ int cg_pid_get_path(const char *controller, pid_t pid, char **path) { (void) __fsetlocking(f, FSETLOCKING_BYCALLER); - FOREACH_LINE(line, f, return -errno) { + for (;;) { + _cleanup_free_ char *line = NULL; char *e, *p; - truncate_nl(line); + r = read_line(f, LONG_LINE_MAX, &line); + if (r < 0) + return r; + if (r == 0) + break; if (unified) { e = startswith(line, "0:"); |
