From: Jens Axboe Date: Wed, 23 Jun 2021 15:04:13 +0000 (-0600) Subject: io_uring: add IOPOLL and reserved field checks to IORING_OP_RENAMEAT X-Git-Tag: v5.12.17~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=facc7c069f0a41c81602de87694700d6feecf5a7;p=thirdparty%2Fkernel%2Fstable.git io_uring: add IOPOLL and reserved field checks to IORING_OP_RENAMEAT commit ed7eb2592286ead7d3bfdf8adf65e65392167cc4 upstream. We can't support IOPOLL with non-pollable request types, and we should check for unused/reserved fields like we do for other request types. Fixes: 80a261fd0032 ("io_uring: add support for IORING_OP_RENAMEAT") Cc: stable@vger.kernel.org Reported-by: Dmitry Kadashev Signed-off-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/io_uring.c b/fs/io_uring.c index c6e76c4fe706d..bdf619bf4ae61 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -3497,6 +3497,10 @@ static int io_renameat_prep(struct io_kiocb *req, struct io_rename *ren = &req->rename; const char __user *oldf, *newf; + if (unlikely(req->ctx->flags & IORING_SETUP_IOPOLL)) + return -EINVAL; + if (sqe->ioprio || sqe->buf_index) + return -EINVAL; if (unlikely(req->flags & REQ_F_FIXED_FILE)) return -EBADF;