From: Daan De Meyer Date: Fri, 24 Mar 2023 19:48:23 +0000 (+0100) Subject: fs-util: Strip O_NOFOLLOW in xopenat() when calling fd_reopen() X-Git-Tag: v254-rc1~862^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fedceeba2eb936286b79ba6f6c1a6067c82b3ec5;p=thirdparty%2Fsystemd.git fs-util: Strip O_NOFOLLOW in xopenat() when calling fd_reopen() We definitely want to follow symlinks when calling fd_reopen() so let's strip O_NOFOLLOW when we call it from xopenat(). --- diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c index 257c11ad715..cb323a64031 100644 --- a/src/basic/fs-util.c +++ b/src/basic/fs-util.c @@ -1106,7 +1106,7 @@ int xopenat(int dir_fd, const char *path, int flags, mode_t mode) { if (isempty(path)) { assert(!FLAGS_SET(flags, O_CREAT|O_EXCL)); - return fd_reopen(dir_fd, flags); + return fd_reopen(dir_fd, flags & ~O_NOFOLLOW); } if (FLAGS_SET(flags, O_DIRECTORY|O_CREAT)) {