Commit c8c929b9 authored by Hans Verkuil's avatar Hans Verkuil Committed by Tengda Wu
Browse files

media: pci: cx23885: check cx23885_vdev_init() return

stable inclusion
from stable-v5.10.225
commit e7385510e2550a9f8b6f3d5f33c5b894ab9ba976
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAYYUE
CVE: CVE-2023-52918

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e7385510e2550a9f8b6f3d5f33c5b894ab9ba976



--------------------------------

[ Upstream commit 15126b916e39b0cb67026b0af3c014bfeb1f76b3 ]

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: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Reported-by: default avatarSicong Huang <huangsicong@iie.ac.cn>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Fixes: e47f30b1 ("V4L/DVB (7009): cx23885: Video and VBI related files")
Signed-off-by: default avatarTengda Wu <wutengda2@huawei.com>
parent 41255614
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1353,6 +1353,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;
@@ -1381,6 +1385,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;