fs-util: introduce fchmod_opath()

fchmod(2) still doesn't take file descriptors opened with O_PATH.
This commit is contained in:
Franck Bui
2018-04-24 11:57:48 +02:00
parent 7b887f2284
commit 4dfaa528d4
3 changed files with 18 additions and 8 deletions
+15
View File
@@ -241,6 +241,21 @@ int fchmod_umask(int fd, mode_t m) {
return r;
}
int fchmod_opath(int fd, mode_t m) {
char procfs_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
/* This function operates also on fd that might have been opened with
* O_PATH. Indeed fchmodat() doesn't have the AT_EMPTY_PATH flag like
* fchownat() does. */
xsprintf(procfs_path, "/proc/self/fd/%i", fd);
if (chmod(procfs_path, m) < 0)
return -errno;
return 0;
}
int fd_warn_permissions(const char *path, int fd) {
struct stat st;