diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2022-07-07 15:00:38 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-07-07 17:33:01 -0600 |
commit | bdb2c48e4b38e6dbe82533b437468999ba3ae498 (patch) | |
tree | 263708808cce5a4d1fe33f70350cdceddfcfe459 /fs/io_uring.c | |
parent | 09007af2b627f0f195c6c53c4829b285cc3990ec (diff) | |
download | lwn-bdb2c48e4b38e6dbe82533b437468999ba3ae498.tar.gz lwn-bdb2c48e4b38e6dbe82533b437468999ba3ae498.zip |
io_uring: explicit sqe padding for ioctl commands
32 bit sqe->cmd_op is an union with 64 bit values. It's always a good
idea to do padding explicitly. Also zero check it in prep, so it can be
used in the future if needed without compatibility concerns.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/e6b95a05e970af79000435166185e85b196b2ba2.1657202417.git.asml.silence@gmail.com
[axboe: turn bitwise OR into logical variant]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io_uring.c')
-rw-r--r-- | fs/io_uring.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index 0d491ad15b66..cddc0e8490af 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -5066,7 +5066,7 @@ static int io_uring_cmd_prep(struct io_kiocb *req, { struct io_uring_cmd *ioucmd = &req->uring_cmd; - if (sqe->rw_flags) + if (sqe->rw_flags || sqe->__pad1) return -EINVAL; ioucmd->cmd = sqe->cmd; ioucmd->cmd_op = READ_ONCE(sqe->cmd_op); |