diff options
| author | Yousef Alhouseen <alhouseenyousef@gmail.com> | 2026-06-30 23:18:27 +0200 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-07-02 06:25:21 -0600 |
| commit | f01f5275feb77bac9fefbbf7cc584fe0b3850a92 (patch) | |
| tree | d1d9638c2e78a4c30add35c26c2d9d93c7d9b6d8 /rust/zerocopy/git@git.tavy.me:linux-stable.git | |
| parent | 1e56f30a73f304fe26a272742c398aedd88a1a6c (diff) | |
ublk: snapshot batch commands before preparing I/O
The batch prepare path rereads its userspace element array when rolling
back a partially prepared batch. Userspace can change an already
processed tag before the second read, causing rollback to reject the
replacement tag and leave earlier I/O slots prepared. The
WARN_ON_ONCE() in the rollback path then fires.
Copy the bounded batch into kernel memory before changing any I/O state
and use the same snapshot for preparation and rollback. Commit and fetch
batches retain the existing chunked userspace walk.
Fixes: b256795b3606 ("ublk: handle UBLK_U_IO_PREP_IO_CMDS")
Reported-by: syzbot+1a67ee1aa79484801ec6@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=1a67ee1aa79484801ec6
Signed-off-by: Yousef Alhouseen <alhouseenyousef@gmail.com>
Reviewed-by: Ming Lei <tom.leiming@gmail.com>
Link: https://patch.msgid.link/20260630211827.50475-1-alhouseenyousef@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'rust/zerocopy/git@git.tavy.me:linux-stable.git')
0 files changed, 0 insertions, 0 deletions
