]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: media/pci: Fix memleak in empress_init
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Sat, 2 Jan 2021 06:27:22 +0000 (07:27 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Mar 2021 15:44:17 +0000 (16:44 +0100)
[ Upstream commit 15d0c52241ecb1c9d802506bff6f5c3f7872c0df ]

When vb2_queue_init() fails, dev->empress_dev
should be released just like other error handling
paths.

Fixes: 2ada815fc48bb ("[media] saa7134: convert to vb2")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/pci/saa7134/saa7134-empress.c

index 56b932c97196d68cc76dcdfd007dcf7b937bd40f..ae3b96e9cff358c605fbf0d82e5ca23e8f98738d 100644 (file)
@@ -295,8 +295,11 @@ static int empress_init(struct saa7134_dev *dev)
        q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
        q->lock = &dev->lock;
        err = vb2_queue_init(q);
-       if (err)
+       if (err) {
+               video_device_release(dev->empress_dev);
+               dev->empress_dev = NULL;
                return err;
+       }
        dev->empress_dev->queue = q;
 
        video_set_drvdata(dev->empress_dev, dev);