[alsa-devel] [PATCH] mixer: Fix memory leak for more than 16 file descriptor case

Takashi Iwai tiwai at suse.de
Tue Jan 7 14:03:48 CET 2020


On Mon, 06 Jan 2020 22:41:29 +0100,
David Fries wrote:
> 
> ---
> I saw this when digging through the source code, wrote up a test case,
> and verified with valgrind. I don't have that many sound cards so I
> modified mixer.c to always take the conditional. alloca seemed like
> the least effort way to fix this. Other thoughts were to test pfds !=
> spfds and free, but given how little bytes would be allocated putting
> on the stack seems reasonable.

Looks good to me.

Could you give your sign-off?  It's not strictly needed for alsa-lib,
but we prefer having it.


thanks,

Takashi

> 
> I also created the github pull request 20.
> https://github.com/alsa-project/alsa-lib/pull/20
> 
>  src/mixer/mixer.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/mixer/mixer.c b/src/mixer/mixer.c
> index 82056474..b1af9945 100644
> --- a/src/mixer/mixer.c
> +++ b/src/mixer/mixer.c
> @@ -767,7 +767,7 @@ int snd_mixer_wait(snd_mixer_t *mixer, int timeout)
>  	if (count < 0)
>  		return count;
>  	if ((unsigned int) count > sizeof(spfds) / sizeof(spfds[0])) {
> -		pfds = malloc(count * sizeof(*pfds));
> +		pfds = alloca(count * sizeof(*pfds));
>  		if (!pfds)
>  			return -ENOMEM;
>  		err = snd_mixer_poll_descriptors(mixer, pfds, 
> -- 
> 2.11.0
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list