kernel_samsung_a53x/drivers/media
Zhipeng Lu a0eab8dd81 media: edia: dvbdev: fix a use-after-free
[ Upstream commit 8c64f4cdf4e6cc5682c52523713af8c39c94e6d5 ]

In dvb_register_device, *pdvbdev is set equal to dvbdev, which is freed
in several error-handling paths. However, *pdvbdev is not set to NULL
after dvbdev's deallocation, causing use-after-frees in many places,
for example, in the following call chain:

budget_register
  |-> dvb_dmxdev_init
        |-> dvb_register_device
  |-> dvb_dmxdev_release
        |-> dvb_unregister_device
              |-> dvb_remove_device
                    |-> dvb_device_put
                          |-> kref_put

When calling dvb_unregister_device, dmxdev->dvbdev (i.e. *pdvbdev in
dvb_register_device) could point to memory that had been freed in
dvb_register_device. Thereafter, this pointer is transferred to
kref_put and triggering a use-after-free.

Link: https://lore.kernel.org/linux-media/20240203134046.3120099-1-alexious@zju.edu.cn
Fixes: b61901024776 ("V4L/DVB (5244): Dvbdev: fix illegal re-usage of fileoperations struct")
Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 08:44:52 +01:00
..
cec Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
common media: v4l2-tpg: fix some memleaks in tpg_alloc 2024-11-19 08:44:51 +01:00
dvb-core media: edia: dvbdev: fix a use-after-free 2024-11-19 08:44:52 +01:00
dvb-frontends media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe() 2024-11-18 12:12:41 +01:00
firewire Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c media: tc358743: register v4l2 async device only after successful setup 2024-11-19 08:44:51 +01:00
mc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mmc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci media: av7110: prevent underflow in write_ts_to_decoder() 2024-11-18 22:25:34 +01:00
platform media: rockchip: rga: fix swizzling for RGB formats 2024-11-18 12:13:18 +01:00
radio Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc media: rc: bpf attach/detach requires write permission 2024-11-18 12:13:31 +01:00
spi Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
test-drivers media: vivid: avoid integer overflow 2024-11-18 11:43:15 +01:00
tuners Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
usb media: em28xx: annotate unchecked call to media_device_register() 2024-11-19 08:44:51 +01:00
v4l2-core media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity 2024-11-19 08:44:52 +01:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00