summaryrefslogtreecommitdiff
path: root/sound/virtio
diff options
context:
space:
mode:
authorDongliang Mu <mudongliangabcd@gmail.com>2021-06-02 06:41:36 +0300
committerTakashi Iwai <tiwai@suse.de>2021-06-02 10:37:40 +0300
commit3ae72f6ab9c1f688bd578cdc252dabce65fdaf57 (patch)
treec3694714a831de24cb128a1d9533aed72ce39826 /sound/virtio
parent901be145a46eb79879367d853194346a549e623d (diff)
downloadlinux-3ae72f6ab9c1f688bd578cdc252dabce65fdaf57.tar.xz
ALSA: control led: fix memory leak in snd_ctl_led_register
The snd_ctl_led_sysfs_add and snd_ctl_led_sysfs_remove should contain the refcount operations in pair. However, snd_ctl_led_sysfs_remove fails to decrease the refcount to zero, which causes device_release never to be invoked. This leads to memory leak to some resources, like struct device_private. In addition, we also free some other similar memory leaks in snd_ctl_led_init/snd_ctl_led_exit. Fix this by replacing device_del to device_unregister in snd_ctl_led_sysfs_remove/snd_ctl_led_init/snd_ctl_led_exit. Note that, when CONFIG_DEBUG_KOBJECT_RELEASE is enabled, put_device will call kobject_release and delay the release of kobject, which will cause use-after-free when the memory backing the kobject is freed at once. Reported-by: syzbot+08a7d8b51ea048a74ffb@syzkaller.appspotmail.com Fixes: a135dfb5de15 ("ALSA: led control - add sysfs kcontrol LED marking layer") Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com> Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Jaroslav Kysela <perex@perex.cz> Link: https://lore.kernel.org/r/20210602034136.2762497-1-mudongliangabcd@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/virtio')
0 files changed, 0 insertions, 0 deletions