From f5af75eaec8175b52feb0deff30706a90c67a93c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 18 Oct 2018 16:08:30 +0200 Subject: [PATCH] mount-util: FOREACH_LINE() excorcism --- src/basic/mount-util.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/basic/mount-util.c b/src/basic/mount-util.c index 38edef9823c..358c8a91433 100644 --- a/src/basic/mount-util.c +++ b/src/basic/mount-util.c @@ -13,6 +13,7 @@ #include #include "alloc-util.h" +#include "def.h" #include "escape.h" #include "extract-word.h" #include "fd-util.h" @@ -954,8 +955,8 @@ int mount_option_mangle( int dev_is_devtmpfs(void) { _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; - char line[LINE_MAX], *e; int mount_id, r; + char *e; r = path_get_mnt_id("/dev", &mount_id); if (r < 0) @@ -967,9 +968,16 @@ int dev_is_devtmpfs(void) { (void) __fsetlocking(proc_self_mountinfo, FSETLOCKING_BYCALLER); - FOREACH_LINE(line, proc_self_mountinfo, return -errno) { + for (;;) { + _cleanup_free_ char *line = NULL; int mid; + r = read_line(proc_self_mountinfo, LONG_LINE_MAX, &line); + if (r < 0) + return r; + if (r == 0) + break; + if (sscanf(line, "%i", &mid) != 1) continue; -- 2.47.3