diff options
| author | Guangshuo Li <lgs201920130244@gmail.com> | 2026-07-14 23:16:48 +0800 |
|---|---|---|
| committer | Hans Verkuil <hverkuil+cisco@kernel.org> | 2026-07-28 15:17:54 +0200 |
| commit | bbd4218310cc9fc8bba677e8c35abd03524ad474 (patch) | |
| tree | f06f7511c2b7452fdbcb9464244773e92623812d /tools/perf/scripts/python | |
| parent | 0735e0b5a96761a9ce277a238e834008ad92a0a5 (diff) | |
media: usbtv: Fix V4L2 refcount leak on probe failure
usbtv_probe() allocates usbtv before usbtv_video_init() registers its
embedded v4l2_device. v4l2_device_register() initializes the reference
count to one, with usbtv_release() providing the final cleanup.
If video_register_device() fails, usbtv_video_init() unregisters the
V4L2 device and returns an error without dropping the initial
v4l2_device reference. The probe error path then calls kfree() on usbtv
directly, leaving the reference stranded and bypassing
usbtv_release().
Leave the initialized V4L2 device intact on this failure path. After
releasing the USB reference, call v4l2_device_put() so the final
reference invokes usbtv_release(). Retain the direct kfree() path for
failures that occur before v4l2_device_register().
This issue was found by a static analysis tool I am developing.
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
