linux/drivers/staging
Zheng Wang 2cdc8f729d media: cedrus: fix use after free bug in cedrus_remove due to race condition
[ Upstream commit 50d0a7aea4 ]

In cedrus_probe, dev->watchdog_work is bound with cedrus_watchdog function.
In cedrus_device_run, it will started by schedule_delayed_work. If there is
an unfinished work in cedrus_remove, there may be a race condition and
trigger UAF bug.

CPU0                  CPU1

                    |cedrus_watchdog
cedrus_remove       |
  v4l2_m2m_release  |
  kfree(m2m_dev)    |
                    |
                    | v4l2_m2m_get_curr_priv
                    |   m2m_dev //use

Fix it by canceling the worker in cedrus_remove.

Fixes: 7c38a551bd ("media: cedrus: Add watchdog for job completion")
Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-05-11 23:03:14 +09:00
..
axis-fifo staging: axis-fifo: Use platform_get_irq() to get the interrupt 2021-12-30 11:54:56 +01:00
board staging: board: Fix uninitialized spinlock when attaching genpd 2021-07-21 11:22:15 +02:00
emxx_udc staging: emxx_udc: Add checks for dma_alloc_coherent() 2023-03-11 13:55:34 +01:00
fbtft staging: fbtft: core: set smem_len before fb_deferred_io_init call 2022-07-28 10:42:42 +02:00
fieldbus staging: fieldbus: Fix the error handling path in anybuss_host_common_probe() 2022-04-22 16:48:31 +02:00
gdm724x staging: gdm724x: drop unused CDC defines 2022-07-25 10:57:42 +02:00
greybus Staging driver changes for 6.1-rc1 2022-10-08 09:19:24 -07:00
iio staging: iio: resolver: ads1210: fix config mode 2023-05-11 23:03:01 +09:00
ks7010 staging: ks7010: remove null check after call container_of() 2022-05-19 17:42:41 +02:00
media media: cedrus: fix use after free bug in cedrus_remove due to race condition 2023-05-11 23:03:14 +09:00
most i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
nvec Staging: nvec: Fix ending in '(' error 2022-02-08 10:46:01 +01:00
octeon staging: octeon: Fix return type of cvm_oct_xmit and cvm_oct_xmit_pow 2022-09-24 13:07:31 +02:00
olpc_dcon i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
pi433 staging: pi433: fix memory leak with using debugfs_lookup() 2023-03-11 13:55:36 +01:00
qlge net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
r8188eu drivers: staging: r8188eu: Fix sleep-in-atomic-context bug in rtw_join_timeout_handler 2022-12-31 13:32:38 +01:00
rtl8192e staging: rtl8192e: Remove call_usermodehelper starting RadioPower.sh 2023-03-13 10:21:31 +01:00
rtl8192u staging: rtl8192u: Fix use after free in ieee80211_rx() 2022-12-31 13:32:42 +01:00
rtl8712 staging: rtl8712: Fix return type for implementation of ndo_start_xmit 2022-09-09 09:55:24 +02:00
rtl8723bs staging: rtl8723bs: Pass correct parameters to cfg80211_get_bss() 2023-03-17 08:50:16 +01:00
rts5208 staging: rts5208: spi.c: fix codestyle error in dynamic debug code 2022-06-06 07:53:49 +02:00
sm750fb Staging driver changes for 6.1-rc1 2022-10-08 09:19:24 -07:00
vc04_services staging: vchiq_arm: fix enum vchiq_status return types 2023-01-24 07:24:35 +01:00
vme_user vme: Fix error not catched in fake_init() 2022-12-31 13:32:42 +01:00
vt6655 staging: vt6655: fix some erroneous memory clean-up loops 2022-09-24 13:05:24 +02:00
vt6656 wifi: mac80211: return a beacon for a specific link 2022-06-20 12:57:08 +02:00
wlan-ng Staging driver changes for 6.1-rc1 2022-10-08 09:19:24 -07:00
Kconfig Here's the main clk pull request for this merge window. We have some 2022-10-08 10:06:48 -07:00
Makefile Here's the main clk pull request for this merge window. We have some 2022-10-08 10:06:48 -07:00