]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: pci: cx23885: check cx23885_vdev_init() return
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 19 Oct 2023 06:58:49 +0000 (08:58 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 5 Feb 2024 11:57:44 +0000 (12:57 +0100)
cx23885_vdev_init() can return a NULL pointer, but that pointer
is used in the next line without a check.

Add a NULL pointer check and go to the error unwind if it is NULL.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reported-by: Sicong Huang <huangsicong@iie.ac.cn>
drivers/media/pci/cx23885/cx23885-video.c

index 42fdcf992e48b1044a9c0ff9683e81ad111786dd..7d4a409c433e2a8c909323542e6f917bd27cfb64 100644 (file)
@@ -1354,6 +1354,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
        /* register Video device */
        dev->video_dev = cx23885_vdev_init(dev, dev->pci,
                &cx23885_video_template, "video");
+       if (!dev->video_dev) {
+               err = -ENOMEM;
+               goto fail_unreg;
+       }
        dev->video_dev->queue = &dev->vb2_vidq;
        dev->video_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING |
                                      V4L2_CAP_AUDIO | V4L2_CAP_VIDEO_CAPTURE;
@@ -1382,6 +1386,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
        /* register VBI device */
        dev->vbi_dev = cx23885_vdev_init(dev, dev->pci,
                &cx23885_vbi_template, "vbi");
+       if (!dev->vbi_dev) {
+               err = -ENOMEM;
+               goto fail_unreg;
+       }
        dev->vbi_dev->queue = &dev->vb2_vbiq;
        dev->vbi_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING |
                                    V4L2_CAP_AUDIO | V4L2_CAP_VBI_CAPTURE;