]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
io_uring: fix dangling iovec after provided-buffer bundle grow failure
authorHao-Yu Yang <naup96721@gmail.com>
Mon, 6 Jul 2026 18:33:04 +0000 (02:33 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 7 Jul 2026 00:49:37 +0000 (18:49 -0600)
commitcd053d788c3f13b3eaf16672d427ee828fda16ed
treea89f5f27311196a38e1aaefb93b3b8a3282c4f4b
parent58481c749c976e81bef9a540e2225ddb021daaa6
io_uring: fix dangling iovec after provided-buffer bundle grow failure

When growing a provided-buffer bundle, the old cached iovec is freed
before the new buffers have all been validated. If validation fails, the
request still points at the freed iovec, which can be freed again during
completion cleanup.

Fix this by deferring the free of the old cached iovec until validation
has succeeded. On failure, free the newly allocated iovec and leave the
request pointing at the original one.

Fixes: 46800585ae04 ("io_uring/kbuf: validate ring provided buffer addresses with access_ok()")
Signed-off-by: Hao-Yu Yang <naup96721@gmail.com>
Link: https://patch.msgid.link/20260706183304.919275-1-naup96721@gmail.com
Suggested-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/kbuf.c