From d22ef91ebee03e0e587723ba428b2c3c92c7488f Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Wed, 2 Mar 2016 00:25:09 +0600 Subject: [PATCH] tree-wide: no need to pass excess flags to open()/openat() if O_PATH is passed As described in the documentation: When O_PATH is specified in flags, flag bits other than O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW are ignored. So, we can remove unnecessary flags in a case when O_PATH is passed to the open() or openat(). --- src/basic/mount-util.c | 4 ++-- src/basic/xattr-util.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/basic/mount-util.c b/src/basic/mount-util.c index da34ef6e7..51734a1bf 100644 --- a/src/basic/mount-util.c +++ b/src/basic/mount-util.c @@ -47,7 +47,7 @@ static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int *mnt_id if ((flags & AT_EMPTY_PATH) && isempty(filename)) xsprintf(path, "/proc/self/fdinfo/%i", fd); else { - subfd = openat(fd, filename, O_RDONLY|O_CLOEXEC|O_NOCTTY|O_PATH); + subfd = openat(fd, filename, O_CLOEXEC|O_PATH); if (subfd < 0) return -errno; @@ -230,7 +230,7 @@ int path_is_mount_point(const char *t, int flags) { if (!parent) return -ENOMEM; - fd = openat(AT_FDCWD, parent, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_PATH); + fd = openat(AT_FDCWD, parent, O_DIRECTORY|O_CLOEXEC|O_PATH); if (fd < 0) return -errno; diff --git a/src/basic/xattr-util.c b/src/basic/xattr-util.c index 85f3d2060..6b5c54653 100644 --- a/src/basic/xattr-util.c +++ b/src/basic/xattr-util.c @@ -111,7 +111,7 @@ ssize_t fgetxattrat_fake(int dirfd, const char *filename, const char *attribute, /* The kernel doesn't have a fgetxattrat() command, hence let's emulate one */ - fd = openat(dirfd, filename, O_RDONLY|O_CLOEXEC|O_NOCTTY|O_PATH|(flags & AT_SYMLINK_NOFOLLOW ? O_NOFOLLOW : 0)); + fd = openat(dirfd, filename, O_CLOEXEC|O_PATH|(flags & AT_SYMLINK_NOFOLLOW ? O_NOFOLLOW : 0)); if (fd < 0) return -errno; -- 2.30.2