OpenCloudOS-Kernel/drivers/media/pci
Zheng Wang 30cf57da17 media: saa7134: fix use after free bug in saa7134_finidev due to race condition
In saa7134_initdev, it will call saa7134_hwinit1. There are three
function invoking here: saa7134_video_init1, saa7134_ts_init1
and saa7134_vbi_init1.

All of them will init a timer with same function. Take
saa7134_video_init1 as an example. It'll bound &dev->video_q.timeout
with saa7134_buffer_timeout.

In buffer_activate, the timer funtcion is started.

If we remove the module or device which will call saa7134_finidev
to make cleanup, there may be a unfinished work. The
possible sequence is as follows, which will cause a
typical UAF bug.

Fix it by canceling the timer works accordingly before cleanup in
saa7134_finidev.

CPU0                  CPU1

                    |saa7134_buffer_timeout
saa7134_finidev     |
  kfree(dev);       |
                    |
                    | saa7134_buffer_next
                    | //use dev

Fixes: 1e7126b4a8 ("media: saa7134: Convert timers to use timer_setup()")
Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
2023-04-11 17:10:10 +02:00
..
b2c2 media: b2c2: Add missing check in flexcop_pci_isr: 2021-11-19 15:40:09 +00:00
bt8xx media: bttv: drop overlay support 2023-03-20 00:29:11 +01:00
cobalt media: Kconfig: cleanup VIDEO_DEV dependencies 2022-03-18 05:58:35 +01:00
cx18 media: cx18: fix format compliance issues 2023-03-19 22:13:35 +01:00
cx88 media: cx88: add IR remote support for NotOnlyTV LV3H 2022-09-24 11:21:43 +02:00
cx23885 media: cx23885: Fix a null-ptr-deref bug in buffer_prepare() and buffer_finish() 2023-03-19 22:55:33 +01:00
cx25821 cx25821: remove unused cx25821_video_wakeup() declaration 2022-10-24 19:03:52 +02:00
ddbridge driver core: make struct class.devnode() take a const * 2022-11-24 17:12:27 +01:00
dm1105 media: dm1105: Fix use after free bug in dm1105_remove due to race condition 2023-04-11 17:10:10 +02:00
dt3155 media: v4l: ioctl: Set bus_info in v4l_querycap() 2022-04-24 08:07:08 +01:00
intel media updates for v6.3-rc1 2023-02-26 11:47:26 -08:00
ivtv treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
mantis media: mantis: Kconfig: add depends on DVB_CORE for MANTIS_CORE 2022-11-25 10:04:11 +00:00
netup_unidvb media: switch from 'pci_' to 'dma_' API 2021-09-30 10:07:55 +02:00
ngene media: media/pci/ngene/ngene.h: remove #ifdef NGENE_V4L 2022-08-29 15:37:30 +02:00
pluto2 media: switch from 'pci_' to 'dma_' API 2021-09-30 10:07:55 +02:00
pt1 media: switch from 'pci_' to 'dma_' API 2021-09-30 10:07:55 +02:00
pt3 media: pt3: Use dma_set_mask_and_coherent() and simplify code 2022-12-07 17:58:46 +01:00
saa7134 media: saa7134: fix use after free bug in saa7134_finidev due to race condition 2023-04-11 17:10:10 +02:00
saa7146 media: Revert "media: saa7146: deprecate hexium_gemini/orion, mxb and ttpci" 2023-02-09 09:22:36 +01:00
saa7164 media: saa7164: fix missing pci_disable_device() 2022-12-06 07:13:04 +00:00
smipcie media: smipcie: fix interrupt handling and IR timeout 2021-02-05 23:41:25 +01:00
solo6x10 media: solo6x10: fix possible memory leak in solo_sysfs_init() 2022-11-25 07:36:22 +00:00
sta2x11 media: sta2x11: remove VIRT_TO_BUS dependency 2022-06-27 09:12:14 +01:00
ttpci media: drop unnecessary networking includes 2023-03-19 22:50:06 +01:00
tw68 media: pci: tw68: Fix null-ptr-deref bug in buf prepare and finish 2023-03-19 22:56:45 +01:00
tw686x media: tw686x: Fix memory leak in tw686x_video_init 2022-06-27 09:24:45 +01:00
tw5864 media: tw5864: Convert to use managed functions pcim* and devm* 2022-06-20 10:30:34 +01:00
zoran media: zoran: drop two obsolete prototypes from zoran_device.h 2023-03-20 00:22:34 +01:00
Kconfig media: Revert "media: saa7146: deprecate hexium_gemini/orion, mxb and ttpci" 2023-02-09 09:22:36 +01:00
Makefile media: Revert "media: saa7146: deprecate hexium_gemini/orion, mxb and ttpci" 2023-02-09 09:22:36 +01:00