diff options
| author | Yang Yingliang <yangyingliang@huawei.com> | 2022-10-19 17:30:25 +0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-11-03 23:56:55 +0900 |
| commit | 758dbcc6fbf2286eff02743b093c70a18a407d66 (patch) | |
| tree | fc6660aa83a7996eab0468dba4475dbe403c5c2b | |
| parent | ccaeef126ed12046b14ced79eaf6547e110b746b (diff) | |
| download | linux-758dbcc6fbf2286eff02743b093c70a18a407d66.tar.gz linux-758dbcc6fbf2286eff02743b093c70a18a407d66.tar.bz2 linux-758dbcc6fbf2286eff02743b093c70a18a407d66.zip | |
ALSA: ac97: fix possible memory leak in snd_ac97_dev_register()
[ Upstream commit 4881bda5ea05c8c240fc8afeaa928e2bc43f61fa ]
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: 0ca06a00e206 ("[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>
| -rw-r--r-- | sound/pci/ac97/ac97_codec.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 6fb192a94762..83bb086bf975 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -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; } |
