mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-01 02:32:49 -04:00
media: vivid: fix error handling of kthread_run
kthread_run returns an error pointer, but elsewhere in the code dev->kthread_vid_cap/out is checked against NULL. If kthread_run returns an error, then set the pointer to NULL. I chose this method over changing all kthread_vid_cap/out tests elsewhere since this is more robust. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Reported-by: syzbot+53d5b2df0d9744411e2e@syzkaller.appspotmail.com Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
da411ab10c
commit
701f49bc02
@@ -873,8 +873,11 @@ int vivid_start_generating_vid_cap(struct vivid_dev *dev, bool *pstreaming)
|
||||
"%s-vid-cap", dev->v4l2_dev.name);
|
||||
|
||||
if (IS_ERR(dev->kthread_vid_cap)) {
|
||||
int err = PTR_ERR(dev->kthread_vid_cap);
|
||||
|
||||
dev->kthread_vid_cap = NULL;
|
||||
v4l2_err(&dev->v4l2_dev, "kernel_thread() failed\n");
|
||||
return PTR_ERR(dev->kthread_vid_cap);
|
||||
return err;
|
||||
}
|
||||
*pstreaming = true;
|
||||
vivid_grab_controls(dev, true);
|
||||
|
||||
@@ -244,8 +244,11 @@ int vivid_start_generating_vid_out(struct vivid_dev *dev, bool *pstreaming)
|
||||
"%s-vid-out", dev->v4l2_dev.name);
|
||||
|
||||
if (IS_ERR(dev->kthread_vid_out)) {
|
||||
int err = PTR_ERR(dev->kthread_vid_out);
|
||||
|
||||
dev->kthread_vid_out = NULL;
|
||||
v4l2_err(&dev->v4l2_dev, "kernel_thread() failed\n");
|
||||
return PTR_ERR(dev->kthread_vid_out);
|
||||
return err;
|
||||
}
|
||||
*pstreaming = true;
|
||||
vivid_grab_controls(dev, true);
|
||||
|
||||
Reference in New Issue
Block a user