]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mount-point: honour AT_SYMLINK_FOLLOW correctly
authorLennart Poettering <lennart@poettering.net>
Sat, 8 Dec 2018 19:21:43 +0000 (20:21 +0100)
committerLennart Poettering <lennart@poettering.net>
Sat, 8 Dec 2018 21:43:55 +0000 (22:43 +0100)
Fixes: #11092
src/basic/mountpoint-util.c

index 0a9f479e42a376733d8d545c7c1ec79ba7bb71fc..1e946a0bb67587e4562f7a7d396ff53da987249a 100644 (file)
@@ -98,7 +98,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_CLOEXEC|O_PATH);
+                subfd = openat(fd, filename, O_CLOEXEC|O_PATH|(flags & AT_SYMLINK_FOLLOW ? 0 : O_NOFOLLOW));
                 if (subfd < 0)
                         return -errno;