]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
media: tw686x: Fix memory leak in tw686x_video_init
authorMiaoqian Lin <linmq006@gmail.com>
Tue, 21 Jun 2022 05:30:30 +0000 (06:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 21 Aug 2022 13:15:42 +0000 (15:15 +0200)
[ Upstream commit e0b212ec9d8177d6f7c404315293f6a085d6ee42 ]

video_device_alloc() allocates memory for vdev,
when video_register_device() fails, it doesn't release the memory and
leads to memory leak, call video_device_release() to fix this.

Fixes: 704a84ccdbf1 ("[media] media: Support Intersil/Techwell TW686x-based video capture cards")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/pci/tw686x/tw686x-video.c

index 1ced2b0ddb2410cd921663b9415892853ff300e3..55ed8851256f3d5942363cb4ccf2a04f3e04f513 100644 (file)
@@ -1283,8 +1283,10 @@ int tw686x_video_init(struct tw686x_dev *dev)
                video_set_drvdata(vdev, vc);
 
                err = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
-               if (err < 0)
+               if (err < 0) {
+                       video_device_release(vdev);
                        goto error;
+               }
                vc->num = vdev->num;
        }