• J
    io_uring: fix fget/fput handling · 1a18e019
    Jens Axboe 提交于
    commit 09bb839434bd845c01da3d159b0c126fe7fa90da upstream.
    
    This isn't a straight port of commit 84c4e1f89fef for aio.c, since
    io_uring doesn't use files in exactly the same way. But it's pretty
    close. See the commit message for that commit.
    
    This essentially fixes a use-after-free with the poll command
    handling, but it takes cue from Linus's approach to just simplifying
    the file handling. We move the setup of the file into a higher level
    location, so the individual commands don't have to deal with it. And
    then we release the reference when we free the associated io_kiocb.
    
    Fixes: 221c5eb23382 ("io_uring: add support for IORING_OP_POLL")
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    Signed-off-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: NJeffle Xu <jefflexu@linux.alibaba.com>
    Acked-by: NCaspar Zhang <caspar@linux.alibaba.com>
    1a18e019
io_uring.c 68.4 KB