diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2021-08-25 22:51:40 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-08-27 18:23:11 +0300 |
commit | 90499ad00ca59320b5bb43392b7931e1bd84cad2 (patch) | |
tree | 044c1deb63582eb07e0014ed217a53bad3c57026 /fs/io_uring.c | |
parent | b18a1a4574d2d15f1b0c84658d4549ccbf241fee (diff) | |
download | linux-90499ad00ca59320b5bb43392b7931e1bd84cad2.tar.xz |
io_uring: add build check for buf_index overflows
req->buf_index is u16 and so we rely on registered buffers indexes
fitting into it. Add a build check, so when the upper limit for the
number of buffers is lifted we get a compliation fail but not lurking
problems.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/787e8e1a17cea51ca6301426b1c4c4887b8bd676.1629920396.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io_uring.c')
-rw-r--r-- | fs/io_uring.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index 09194f7276ba..53326449d685 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -10493,6 +10493,10 @@ static int __init io_uring_init(void) sizeof(struct io_uring_rsrc_update)); BUILD_BUG_ON(sizeof(struct io_uring_rsrc_update) > sizeof(struct io_uring_rsrc_update2)); + + /* ->buf_index is u16 */ + BUILD_BUG_ON(IORING_MAX_REG_BUFFERS >= (1u << 16)); + /* should fit into one byte */ BUILD_BUG_ON(SQE_VALID_FLAGS >= (1 << 8)); |