1. 04 Jul, 2020 39 commits
  2. 23 Jun, 2020 1 commit
    • Tuomas Tynkkynen's avatar
      media: media-request: Fix crash if memory allocation fails · e30cc79c
      Tuomas Tynkkynen authored
      Syzbot reports a NULL-ptr deref in the kref_put() call:
      
      BUG: KASAN: null-ptr-deref in media_request_put drivers/media/mc/mc-request.c:81 [inline]
       kref_put include/linux/kref.h:64 [inline]
       media_request_put drivers/media/mc/mc-request.c:81 [inline]
       media_request_close+0x4d/0x170 drivers/media/mc/mc-request.c:89
       __fput+0x2ed/0x750 fs/file_table.c:281
       task_work_run+0x147/0x1d0 kernel/task_work.c:123
       tracehook_notify_resume include/linux/tracehook.h:188 [inline]
       exit_to_usermode_loop arch/x86/entry/common.c:165 [inline]
       prepare_exit_to_usermode+0x48e/0x600 arch/x86/entry/common.c:196
      
      What led to this crash was an injected memory allocation failure in
      media_request_alloc():
      
      FAULT_INJECTION: forcing a failure.
      name failslab, interval 1, probability 0, space 0, times 0
       should_failslab+0x5/0x20
       kmem_cache_alloc_trace+0x57/0x300
       ? anon_inode_getfile+0xe5/0x170
       media_request_alloc+0x339/0x440
       media_device_request_alloc+0x94/0xc0
       media_device_ioctl+0x1fb/0x330
       ? do_vfs_ioctl+0x6ea/0x1a00
       ? media_ioctl+0x101/0x120
       ? __media_device_usb_init+0x430/0x430
       ? media_poll+0x110/0x110
       __se_sys_ioctl+0xf9/0x160
       do_syscall_64+0xf3/0x1b0
      
      When that allocation fails, filp->private_data is left uninitialized
      which media_request_close() does not expect and crashes.
      
      To avoid this, reorder media_request_alloc() such that
      allocating the struct file happens as the last step thus
      media_request_close() will no longer get called for a partially created
      media request.
      
      Reported-by: syzbot+6bed2d543cf7e48b822b@syzkaller.appspotmail.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
      Fixes: 10905d70 ("media: media-request: implement media requests")
      Reviewed-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      e30cc79c