]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ALSA: ac97: fix possible memory leak in snd_ac97_dev_register()
authorYang Yingliang <yangyingliang@huawei.com>
Wed, 19 Oct 2022 09:30:25 +0000 (17:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Nov 2022 14:56:55 +0000 (23:56 +0900)
[ Upstream commit 46fb581a144f697abf7d8e851c0c6e588bd867d1 ]

If device_register() fails in snd_ac97_dev_register(), it should
call put_device() to give up reference, or the name allocated in
dev_set_name() is leaked.

Fixes: 882f74e416be ("[ALSA] AC97 bus interface for ad-hoc drivers")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20221019093025.1179475-1-yangyingliang@huawei.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/pci/ac97/ac97_codec.c

index 6fb192a94762ff2bd819fa1c38ddc20c89a8e859..83bb086bf9757a108a2146fe5d6b9dcd15af4457 100644 (file)
@@ -1945,6 +1945,7 @@ static int snd_ac97_dev_register(struct snd_device *device)
                     snd_ac97_get_short_name(ac97));
        if ((err = device_register(&ac97->dev)) < 0) {
                ac97_err(ac97, "Can't register ac97 bus\n");
+               put_device(&ac97->dev);
                ac97->dev.bus = NULL;
                return err;
        }