]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: check for rollover of buffer ID when providing buffers
authorJens Axboe <axboe@kernel.dk>
Thu, 10 Nov 2022 17:50:55 +0000 (10:50 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Nov 2022 18:07:41 +0000 (11:07 -0700)
commita52ed1a8a1880f8999a3fbdf6c824efc38fcbb2e
tree02ea2b907fadded9db12ee93d50b4f848dbeffab
parent5e023c3351e6d9d616782c2a7876374f048750d4
io_uring: check for rollover of buffer ID when providing buffers

We already check if the chosen starting offset for the buffer IDs fit
within an unsigned short, as 65535 is the maximum value for a provided
buffer. But if the caller asks to add N buffers at offset M, and M + N
would exceed the size of the unsigned short, we simply add buffers with
wrapping around the ID.

This is not necessarily a bug and could in fact be a valid use case, but
it seems confusing and inconsistent with the initial check for starting
offset. Let's check for wrap consistently, and error the addition if we
do need to wrap.

Reported-by: Olivier Langlois <olivier@trillion01.com>
Link: https://github.com/axboe/liburing/issues/726
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/kbuf.c