]> www.infradead.org Git - users/jedix/linux-maple.git/commit
media: v4l2-dev: fix error handling in __video_register_device()
authorMa Ke <make24@iscas.ac.cn>
Wed, 19 Mar 2025 08:02:48 +0000 (16:02 +0800)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 9 May 2025 09:55:06 +0000 (11:55 +0200)
commit2a934fdb01db6458288fc9386d3d8ceba6dd551a
treede05516e23af67f39b63057574faa4072d01ccb6
parent48dbb76cef65fabaa3ac97461eda90495e954ecd
media: v4l2-dev: fix error handling in __video_register_device()

Once device_register() failed, we should call put_device() to
decrement reference count for cleanup. Or it could cause memory leak.
And move callback function v4l2_device_release() and v4l2_device_get()
before put_device().

As comment of device_register() says, 'NOTE: _Never_ directly free
@dev after calling this function, even if it returned an error! Always
use put_device() to give up the reference initialized in this function
instead.'

Found by code review.

Cc: stable@vger.kernel.org
Fixes: dc93a70cc7f9 ("V4L/DVB (9973): v4l2-dev: use the release callback from device instead of cdev")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/v4l2-core/v4l2-dev.c