alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ALSA: core: control_led: fix memory leak in snd_ctl_led_set_state()
@ 2021-04-04  6:40 Takashi Sakamoto
  2021-04-04  8:16 ` Jaroslav Kysela
  0 siblings, 1 reply; 3+ messages in thread
From: Takashi Sakamoto @ 2021-04-04  6:40 UTC (permalink / raw)
  To: tiwai, perex; +Cc: alsa-devel

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@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);
 	}
 	mutex_unlock(&snd_ctl_led_mutex);
 	switch (led->mode) {
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ALSA: core: control_led: fix memory leak in snd_ctl_led_set_state()
  2021-04-04  6:40 [PATCH] ALSA: core: control_led: fix memory leak in snd_ctl_led_set_state() Takashi Sakamoto
@ 2021-04-04  8:16 ` Jaroslav Kysela
  2021-04-06  1:16   ` Takashi Sakamoto
  0 siblings, 1 reply; 3+ messages in thread
From: Jaroslav Kysela @ 2021-04-04  8:16 UTC (permalink / raw)
  To: Takashi Sakamoto, tiwai; +Cc: alsa-devel

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@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@perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ALSA: core: control_led: fix memory leak in snd_ctl_led_set_state()
  2021-04-04  8:16 ` Jaroslav Kysela
@ 2021-04-06  1:16   ` Takashi Sakamoto
  0 siblings, 0 replies; 3+ messages in thread
From: Takashi Sakamoto @ 2021-04-06  1:16 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: tiwai, alsa-devel

On Sun, Apr 04, 2021 at 10:16:03AM +0200, Jaroslav Kysela wrote:
> 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@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().

Ah. I overlooked it. Please abandon the patch.


Regards

Takashi Sakamoto

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-06  1:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-04  6:40 [PATCH] ALSA: core: control_led: fix memory leak in snd_ctl_led_set_state() Takashi Sakamoto
2021-04-04  8:16 ` Jaroslav Kysela
2021-04-06  1:16   ` Takashi Sakamoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).