[PATCH] ALSA: core: control_led: fix memory leak in snd_ctl_led_set_state()

Jaroslav Kysela perex at perex.cz
Sun Apr 4 10:16:03 CEST 2021


Dne 04. 04. 21 v 8:40 Takashi Sakamoto napsal(a):
> When inquired control element is not in led group, snd_ctl_led_set_state()
> attempts to add the element into the group, according to function
> arguments. Although an memory object is allocated for led instance, it's
> left as is without being released.
> 
> This commit fixes the memory leak.
> 
> Fixes: 22d8de62f11b ("ALSA: control - add generic LED trigger module as the new control layer")
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
> ---
>  sound/core/control_led.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/sound/core/control_led.c b/sound/core/control_led.c
> index 788fd9e275e0..b97f118cd54e 100644
> --- a/sound/core/control_led.c
> +++ b/sound/core/control_led.c
> @@ -161,6 +161,7 @@ static void snd_ctl_led_set_state(struct snd_card *card, unsigned int access,
>  			list_add(&lctl->list, &led->controls);
>  			UPDATE_ROUTE(route, snd_ctl_led_get(lctl));
>  		}
> +		kfree(lctl);

NAK: The lctl pointer is added to led->controls list to track the related
kctl. The kfree is called from snd_ctl_led_clean().

				Jaroslav


-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list