diff --git a/fs/io_uring.c b/fs/io_uring.c index 96255b816d710192095ade0ba1b934785e2365e0..470d50c0b4c3072a015eedd636b8e5e49345d05f 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -6390,6 +6390,8 @@ static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req, if (unlikely(sqe_flags & ~SQE_VALID_FLAGS)) return -EINVAL; + req->opcode = array_index_nospec(req->opcode, IORING_OP_LAST); + if ((sqe_flags & IOSQE_BUFFER_SELECT) && !io_op_defs[req->opcode].buffer_select) return -EOPNOTSUPP;