From 4dfaa528d451aa7926be4f1b4cf8d0ffe338421d Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Wed, 11 Apr 2018 16:58:49 +0200 Subject: fs-util: introduce fchmod_opath() fchmod(2) still doesn't take file descriptors opened with O_PATH. --- src/tmpfiles/tmpfiles.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/tmpfiles') diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 5755f22160..4e437a57fd 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -808,15 +808,9 @@ static int fd_set_perms(Item *i, int fd, const struct stat *st) { if (m == (st->st_mode & 07777)) log_debug("\"%s\" has correct mode %o already.", path, st->st_mode); else { - char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)]; - log_debug("Changing \"%s\" to mode %o.", path, m); - - /* fchmodat() still doesn't have AT_EMPTY_PATH flag. */ - xsprintf(procfs_path, "/proc/self/fd/%i", fd); - - if (chmod(procfs_path, m) < 0) - return log_error_errno(errno, "chmod() of %s via %s failed: %m", path, procfs_path); + if (fchmod_opath(fd, m) < 0) + return log_error_errno(errno, "fchmod() of %s failed: %m", path); } } } -- cgit v1.2.1