diff options
author | Zhipeng Lu <[email protected]> | 2024-02-03 14:40:43 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <[email protected]> | 2024-02-07 06:06:03 +0100 |
commit | 8c64f4cdf4e6cc5682c52523713af8c39c94e6d5 (patch) | |
tree | c067c77f834eaf4601af4ef0d1e19fe6073218ca /tools/perf/scripts/python/futex-contention.py | |
parent | 9651d3d2d691960e64f4c906081d75ae07eb47df (diff) |
media: edia: dvbdev: fix a use-after-free
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/[email protected]
Fixes: b61901024776 ("V4L/DVB (5244): Dvbdev: fix illegal re-usage of fileoperations struct")
Signed-off-by: Zhipeng Lu <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/futex-contention.py')
0 files changed, 0 insertions, 0 deletions