]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: solo6x10: fix possible memory leak in solo_sysfs_init()
authorYang Yingliang <yangyingliang@huawei.com>
Thu, 10 Nov 2022 08:24:23 +0000 (16:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jan 2023 11:07:17 +0000 (12:07 +0100)
[ Upstream commit 7f5866dd96d95b74e439f6ee17b8abd8195179fb ]

If device_register() returns error in solo_sysfs_init(), the
name allocated by dev_set_name() need be freed. As comment of
device_register() says, it should use put_device() to give up
the reference in the error path. So fix this by calling
put_device(), then the name can be freed in kobject_cleanup().

Fixes: dcae5dacbce5 ("[media] solo6x10: sync to latest code from Bluecherry's git repo")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/pci/solo6x10/solo6x10-core.c

index f50d07229236b93c8c1bda7a957dcf174909367d..fc45d4aeb77e0a2cea9df07c3ebb21dd34f355ae 100644 (file)
@@ -428,6 +428,7 @@ static int solo_sysfs_init(struct solo_dev *solo_dev)
                     solo_dev->nr_chans);
 
        if (device_register(dev)) {
+               put_device(dev);
                dev->parent = NULL;
                return -ENOMEM;
        }