]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
ALSA: hda: fix potential memleak in 'add_widget_node'
authorYe Bin <yebin10@huawei.com>
Thu, 10 Nov 2022 14:45:39 +0000 (22:45 +0800)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 12:59:05 +0000 (13:59 +0100)
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>
(cherry picked from commit 7140d7aaf93da6a665b454f91bb4dc6b1de218bd)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
sound/hda/hdac_sysfs.c

index 0d7771fca9f06642059e84ce688ad8498d2a854d..6b8d1565374904eddba1dfb7d403bd34c1711511 100644 (file)
@@ -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);