OSDN Git Service

io_uring: fix ->work corruption with poll_add
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 24 Jul 2020 17:07:20 +0000 (20:07 +0300)
committerJens Axboe <axboe@kernel.dk>
Fri, 24 Jul 2020 18:51:33 +0000 (12:51 -0600)
commitd5e16d8e23825304c6a9945116cc6b6f8d51f28c
treeb386921fbd47c05693f732e95f19f90822d50805
parent3e863ea3bb1a2203ae648eb272db0ce6a1a2072c
io_uring: fix ->work corruption with poll_add

req->work might be already initialised by the time it gets into
__io_arm_poll_handler(), which will corrupt it by using fields that are
in an union with req->work. Luckily, the only side effect is missing
put_creds(). Clean req->work before going there.

Suggested-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c