]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
io_[gs]etxattr_prep(): just use getname()
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 20 Sep 2024 04:28:00 +0000 (00:28 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Nov 2024 18:28:56 +0000 (13:28 -0500)
getname_flags(pathname, LOOKUP_FOLLOW) is obviously bogus - following
trailing symlinks has no impact on how to copy the pathname from userland...

Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
io_uring/xattr.c

index 4b68c282c91a43485f482c4c91d7f01603c44a2d..967c5d8da0612242864d1b51e72e6e284c17303b 100644 (file)
@@ -96,7 +96,7 @@ int io_getxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
 
        path = u64_to_user_ptr(READ_ONCE(sqe->addr3));
 
-       ix->filename = getname_flags(path, LOOKUP_FOLLOW);
+       ix->filename = getname(path);
        if (IS_ERR(ix->filename)) {
                ret = PTR_ERR(ix->filename);
                ix->filename = NULL;
@@ -189,7 +189,7 @@ int io_setxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
 
        path = u64_to_user_ptr(READ_ONCE(sqe->addr3));
 
-       ix->filename = getname_flags(path, LOOKUP_FOLLOW);
+       ix->filename = getname(path);
        if (IS_ERR(ix->filename)) {
                ret = PTR_ERR(ix->filename);
                ix->filename = NULL;