Skip to content
Snippets Groups Projects
  1. Dec 07, 2021
    • Pavel Begunkov's avatar
      block: fix single bio async DIO error handling · 75feae73
      Pavel Begunkov authored
      
      BUG: KASAN: use-after-free in io_submit_one+0x496/0x2fe0 fs/aio.c:1882
      CPU: 2 PID: 15100 Comm: syz-executor873 Not tainted 5.16.0-rc1-syzk #1
      Hardware name: Red Hat KVM, BIOS 1.13.0-2.module+el8.3.0+7860+a7792d29
      04/01/2014
      Call Trace:
        [...]
        refcount_dec_and_test include/linux/refcount.h:333 [inline]
        iocb_put fs/aio.c:1161 [inline]
        io_submit_one+0x496/0x2fe0 fs/aio.c:1882
        __do_sys_io_submit fs/aio.c:1938 [inline]
        __se_sys_io_submit fs/aio.c:1908 [inline]
        __x64_sys_io_submit+0x1c7/0x4a0 fs/aio.c:1908
        do_syscall_x64 arch/x86/entry/common.c:50 [inline]
        do_syscall_64+0x3a/0x80 arch/x86/entry/common.c:80
        entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      __blkdev_direct_IO_async() returns errors from bio_iov_iter_get_pages()
      directly, in which case upper layers won't be expecting ->ki_complete
      to be called by the block layer and will terminate the request. However,
      there is also bio_endio() leading to a second ->ki_complete and a double
      free.
      
      Fixes: 54a88eb8 ("block: add single bio async direct IO helper")
      Reported-by: default avatarGeorge Kennedy <george.kennedy@oracle.com>
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/c9eb786f6cef041e159e6287de131bec0719ad5c.1638907997.git.asml.silence@gmail.com
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      75feae73
  2. Dec 03, 2021
  3. Nov 05, 2021
  4. Oct 27, 2021
  5. Oct 25, 2021
  6. Oct 21, 2021
  7. Oct 19, 2021
  8. Oct 18, 2021
  9. Sep 24, 2021
  10. Sep 07, 2021
Loading