From 121b7054267d34e3f3ab1cbbbb1cc24ebc2d0ea4 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Thu, 14 Dec 2023 23:41:06 +0800 Subject: [PATCH] cgroup-util: check ferror() first Also, there's no need to set use errno_or_else(), since fscanf() is documented to set errno on error. --- src/basic/cgroup-util.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 18b16ecc0e5..68b15846292 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -2141,15 +2141,14 @@ int cg_kernel_controllers(Set **ret) { _cleanup_free_ char *controller = NULL; int enabled = 0; - errno = 0; if (fscanf(f, "%ms %*i %*i %i", &controller, &enabled) != 2) { + if (ferror(f)) + return -errno; + if (feof(f)) break; - if (ferror(f)) - return errno_or_else(EIO); - return -EBADMSG; } -- 2.47.3