]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
media: v4l: async: Properly re-initialise notifier entry in unregister
authorSakari Ailus <sakari.ailus@linux.intel.com>
Fri, 8 Mar 2024 13:06:13 +0000 (15:06 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 10 Apr 2024 13:15:30 +0000 (15:15 +0200)
The notifier_entry of a notifier is not re-initialised after unregistering
the notifier. This leads to dangling pointers being left there so use
list_del_init() to return the notifier_entry an empty list.

Fixes: b8ec754ae4c5 ("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: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/v4l2-core/v4l2-async.c

index 2ff35d5d60f27ffddfe058bed6491bf6b8b8692f..4bb073587817c959f70ad844694e9579f7aa17b3 100644 (file)
@@ -635,7 +635,7 @@ __v4l2_async_nf_unregister(struct v4l2_async_notifier *notifier)
 
        v4l2_async_nf_unbind_all_subdevs(notifier);
 
-       list_del(&notifier->notifier_entry);
+       list_del_init(&notifier->notifier_entry);
 }
 
 void v4l2_async_nf_unregister(struct v4l2_async_notifier *notifier)