]> git.ipfire.org Git - thirdparty/linux.git/commit
io_uring/rsrc: fixup io_clone_buffers() error handling
authorJens Axboe <axboe@kernel.dk>
Tue, 14 Jan 2025 16:44:21 +0000 (09:44 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 14 Jan 2025 16:44:21 +0000 (09:44 -0700)
commitc1c03ee7957ec178756cae09c39d77194e8cddb7
tree13323386525453151d45687315ba45837162cc39
parentbd2703b42decebdcddf76e277ba76b4c4a142d73
io_uring/rsrc: fixup io_clone_buffers() error handling

Jann reports he can trigger a UAF if the target ring unregisters
buffers before the clone operation is fully done. And additionally
also an issue related to node allocation failures. Both of those
stemp from the fact that the cleanup logic puts the buffers manually,
rather than just relying on io_rsrc_data_free() doing it. Hence kill
the manual cleanup code and just let io_rsrc_data_free() handle it,
it'll put the nodes appropriately.

Reported-by: Jann Horn <jannh@google.com>
Fixes: 3597f2786b68 ("io_uring/rsrc: unify file and buffer resource tables")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/rsrc.c