io_uring/fs: remove sqe->rw_flags checking from LINKAT
authorJens Axboe <axboe@kernel.dk>
Thu, 28 Sep 2023 15:23:27 +0000 (09:23 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 29 Sep 2023 09:07:09 +0000 (03:07 -0600)
This is unionized with the actual link flags, so they can of course be
set and they will be evaluated further down. If not we fail any LINKAT
that has to set option flags.

Fixes: cf30da90bc3a ("io_uring: add support for IORING_OP_LINKAT")
Cc: stable@vger.kernel.org
Reported-by: Thomas Leonard <talex5@gmail.com>
Link: https://github.com/axboe/liburing/issues/955
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/fs.c

index f6a69a549fd4503fc15a51bf417733fad44c1ebc..08e3b175469c685d64186595da74c778210df88a 100644 (file)
@@ -243,7 +243,7 @@ int io_linkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
        struct io_link *lnk = io_kiocb_to_cmd(req, struct io_link);
        const char __user *oldf, *newf;
 
-       if (sqe->rw_flags || sqe->buf_index || sqe->splice_fd_in)
+       if (sqe->buf_index || sqe->splice_fd_in)
                return -EINVAL;
        if (unlikely(req->flags & REQ_F_FIXED_FILE))
                return -EBADF;