summaryrefslogtreecommitdiff
path: root/tools/arch/mips/include
diff options
context:
space:
mode:
authorMing Lei <tom.leiming@gmail.com>2026-05-08 20:37:46 +0800
committerJens Axboe <axboe@kernel.dk>2026-05-08 06:44:42 -0600
commitf7700a4415afb3ac1767a556094e4ef8bd440e41 (patch)
tree4ced987546c335d15f5e9949eb826357d60da84e /tools/arch/mips/include
parent86f33ca9bea30cf011f2b1edad4593faea9c6e98 (diff)
ublk: fix use-after-free in ublk_cancel_cmd()
When ublk_reset_ch_dev() clears io->cmd via ublk_queue_reinit() concurrently with ublk_cancel_cmd(), ublk_cancel_cmd() can read a stale pointer and pass it to io_uring_cmd_done(), causing a use-after-free. Fix by synchronizing the two paths with ubq->cancel_lock: - ublk_cancel_cmd(): read and clear io->cmd under cancel_lock, then call io_uring_cmd_done() on the saved local copy outside the lock. - ublk_reset_ch_dev(): hold cancel_lock across ublk_queue_reinit() so that io->cmd and io->flags are cleared atomically with respect to ublk_cancel_cmd(). Fixes: 216c8f5ef0f2 ("ublk: replace monitor with cancelable uring_cmd") Signed-off-by: Ming Lei <tom.leiming@gmail.com> Link: https://patch.msgid.link/20260508123746.242018-1-tom.leiming@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'tools/arch/mips/include')
0 files changed, 0 insertions, 0 deletions