]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
io_uring: fix incorrect io_kiocb reference in io_link_skb
authorYang Xiuwei <yangxiuwei@kylinos.cn>
Fri, 19 Sep 2025 09:03:52 +0000 (17:03 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 19 Sep 2025 12:00:57 +0000 (06:00 -0600)
In io_link_skb function, there is a bug where prev_notif is incorrectly
assigned using 'nd' instead of 'prev_nd'. This causes the context
validation check to compare the current notification with itself instead
of comparing it with the previous notification.

Fix by using the correct prev_nd parameter when obtaining prev_notif.

Signed-off-by: Yang Xiuwei <yangxiuwei@kylinos.cn>
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Fixes: 6fe4220912d19 ("io_uring/notif: implement notification stacking")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/notif.c

index 9a6f6e92d742428bb9d7c30c8b788f19ddab1501..ea9c0116cec2dfa3e0702c3f7fa5e85993705192 100644 (file)
@@ -85,7 +85,7 @@ static int io_link_skb(struct sk_buff *skb, struct ubuf_info *uarg)
                return -EEXIST;
 
        prev_nd = container_of(prev_uarg, struct io_notif_data, uarg);
-       prev_notif = cmd_to_io_kiocb(nd);
+       prev_notif = cmd_to_io_kiocb(prev_nd);
 
        /* make sure all noifications can be finished in the same task_work */
        if (unlikely(notif->ctx != prev_notif->ctx ||