diff options
Diffstat (limited to 'src/shared/cgroup-show.c')
-rw-r--r-- | src/shared/cgroup-show.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index f2c3406995..d2d0339910 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -134,21 +134,23 @@ static int is_delegated(int cgfd, const char *path) { assert(cgfd >= 0 || path); - r = getxattr_malloc(cgfd < 0 ? path : FORMAT_PROC_FD_PATH(cgfd), "trusted.delegate", &b); - if (r < 0 && ERRNO_IS_XATTR_ABSENT(r)) { + const char *t = cgfd >= 0 ? FORMAT_PROC_FD_PATH(cgfd) : path; + + r = getxattr_malloc(t, "trusted.delegate", &b); + if (ERRNO_IS_NEG_XATTR_ABSENT(r)) { /* If the trusted xattr isn't set (preferred), then check the untrusted one. Under the * assumption that whoever is trusted enough to own the cgroup, is also trusted enough to * decide if it is delegated or not this should be safe. */ - r = getxattr_malloc(cgfd < 0 ? path : FORMAT_PROC_FD_PATH(cgfd), "user.delegate", &b); - if (r < 0 && ERRNO_IS_XATTR_ABSENT(r)) + r = getxattr_malloc(t, "user.delegate", &b); + if (ERRNO_IS_NEG_XATTR_ABSENT(r)) return false; } if (r < 0) - return log_debug_errno(r, "Failed to read delegate xattr, ignoring: %m"); + return log_debug_errno(r, "Failed to read delegate xattr from %s, ignoring: %m", t); r = parse_boolean(b); if (r < 0) - return log_debug_errno(r, "Failed to parse delegate xattr boolean value, ignoring: %m"); + return log_debug_errno(r, "Failed to parse delegate xattr from %s, ignoring: %m", t); return r; } |