[PATCH v7] usb: gadget: uvc: Fix null pointer dereference in uvcg_video_init()
Jeffin Philip <[email protected]> Tue, 4 Aug 2026 09:13:38 +0530
| Newsgroups | org.kernel.vger.linux-usb,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
In uvcg_video_init(), if kthread_run_worker() fails, the error logged uses uvcg_err(), however, the pointer it uses: video->uvc is not assigned at this point, triggering a null pointer dereference. Fix this by directly using uvc->func which is assigned already. Reported-by: [email protected] Closes: https://syzkaller.appspot.com/bug?extid=8dcac923582c28505fd7 Fixes: f0bbfbd16b3b ("usb: gadget: uvc: rework to enqueue in pump worker from encoded queue") Cc: [email protected] Signed-off-by: Jeffin Philip <[email protected]> --- Changes in v7: Changed Fixes: tag hash mentioned incorrectly to be updated before in v4 Changes in v6: No code changes from v5 Changes in v5: Added changelog as per maintainer suggestions Changes in v4: Changed Fixes commit line as per Xu Yang's suggestion Changes in v3: Shortened SHA1 hash as per maintainer comment Changes in v2: -Changed subject of the patch to include subsystem as per Xu Yang's comment -Changed incorrect "Fixes" tag to "Closes" -Rewrote the patch to use uvc->func rather than declaring video->uvc first as per Xu Yang's comment --- drivers/usb/gadget/function/uvc_video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c index 2f9700b3f1b6..9ba09118bb74 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -821,7 +821,7 @@ int uvcg_video_init(struct uvc_video *video, struct uvc_device *uvc) /* Allocate a kthread for asynchronous hw submit handler. */ video->kworker = kthread_run_worker(0, "UVCG"); if (IS_ERR(video->kworker)) { - uvcg_err(&video->uvc->func, "failed to create UVCG kworker\n"); + uvcg_err(&uvc->func, "failed to create UVCG kworker\n"); return PTR_ERR(video->kworker); } -- 2.55.0