mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 06:55:13 +08:00
media: v4l: async: Fix notifier list entry init
commit6d8acd02c4
upstream. struct v4l2_async_notifier has several list_head members, but only waiting_list and done_list are initialized. notifier_entry was kept 'zeroed' leading to an uninitialized list_head. This results in a NULL-pointer dereference if csi2_async_register() fails, e.g. node for remote endpoint is disabled, and returns -ENOTCONN. The following calls to v4l2_async_nf_unregister() results in a NULL pointer dereference. Add the missing list head initializer. Fixes:b8ec754ae4
("media: v4l: async: Set v4l2_device and subdev in async notifier init") Cc: <stable@vger.kernel.org> # for 6.6 and later Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
001b4825c9
commit
a80d1da923
@ -563,6 +563,7 @@ void v4l2_async_nf_init(struct v4l2_async_notifier *notifier,
|
||||
{
|
||||
INIT_LIST_HEAD(¬ifier->waiting_list);
|
||||
INIT_LIST_HEAD(¬ifier->done_list);
|
||||
INIT_LIST_HEAD(¬ifier->notifier_entry);
|
||||
notifier->v4l2_dev = v4l2_dev;
|
||||
}
|
||||
EXPORT_SYMBOL(v4l2_async_nf_init);
|
||||
@ -572,6 +573,7 @@ void v4l2_async_subdev_nf_init(struct v4l2_async_notifier *notifier,
|
||||
{
|
||||
INIT_LIST_HEAD(¬ifier->waiting_list);
|
||||
INIT_LIST_HEAD(¬ifier->done_list);
|
||||
INIT_LIST_HEAD(¬ifier->notifier_entry);
|
||||
notifier->sd = sd;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_async_subdev_nf_init);
|
||||
|
Loading…
Reference in New Issue
Block a user