diff options
| author | Kyle Zeng <kylebot@openai.com> | 2026-10-25 02:27:52 +0000 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-10-28 10:50:29 -0600 |
| commit | 37e425460b7c41687e51e3254b1eb1d799da9614 (patch) | |
| tree | d65b725d8008e990ec2528808e18cac92a3b5b7a /tools/lib/python/kdoc/python_version.py | |
| parent | cb0306c52ffae083a86fb283de67875ae7a9500e (diff) | |
io_uring/io-wq: save worker type before dropping its reference
io_wq_cancel_tw_create() inspects cb->func after calling
io_worker_cancel_cb(). For an existing worker, that call can drop the
last worker reference and wake io_worker_exit(). If the canceling task
is preempted, the worker can be unlinked and freed by kfree_rcu() before
the callback function is inspected. KASAN reports a slab-use-after-free
read in this path.
Save whether the callback belongs to an unpublished continuation worker
while its reference is still held, then use the saved result for the
conditional free. This preserves the existing accounting and frees only
the worker allocated for the canceled continuation.
Fixes: e6db6f9398da ("io_uring/io-wq: only free worker if it was allocated for creation")
Cc: stable@vger.kernel.org
Signed-off-by: Kyle Zeng <kylebot@openai.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
