summaryrefslogtreecommitdiffstats
path: root/sound/hda
diff options
context:
space:
mode:
authorYe Bin <yebin10@huawei.com>2022-11-10 22:45:39 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-11-16 09:57:15 +0100
commit3a79f9568de08657fcdbc41d6fc4c0ca145a7a2b (patch)
treea717dbd2089d34fc9d08c62ee08d0ef1f67584ae /sound/hda
parent380d64168da41b17dc4faaf5c5e780793566ca09 (diff)
downloadlinux-stable-3a79f9568de08657fcdbc41d6fc4c0ca145a7a2b.tar.gz
linux-stable-3a79f9568de08657fcdbc41d6fc4c0ca145a7a2b.tar.bz2
linux-stable-3a79f9568de08657fcdbc41d6fc4c0ca145a7a2b.zip
ALSA: hda: fix potential memleak in 'add_widget_node'
commit 9a5523f72bd2b0d66eef3d58810c6eb7b5ffc143 upstream. As 'kobject_add' may allocated memory for 'kobject->name' when return error. And in this function, if call 'kobject_add' failed didn't free kobject. So call 'kobject_put' to recycling resources. Signed-off-by: Ye Bin <yebin10@huawei.com> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20221110144539.2989354-1-yebin@huaweicloud.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound/hda')
-rw-r--r--sound/hda/hdac_sysfs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/hda/hdac_sysfs.c b/sound/hda/hdac_sysfs.c
index e56e83325903..bcf302f5115a 100644
--- a/sound/hda/hdac_sysfs.c
+++ b/sound/hda/hdac_sysfs.c
@@ -346,8 +346,10 @@ static int add_widget_node(struct kobject *parent, hda_nid_t nid,
return -ENOMEM;
kobject_init(kobj, &widget_ktype);
err = kobject_add(kobj, parent, "%02x", nid);
- if (err < 0)
+ if (err < 0) {
+ kobject_put(kobj);
return err;
+ }
err = sysfs_create_group(kobj, group);
if (err < 0) {
kobject_put(kobj);