[alsa-devel] memory leak in mix/pcm_upmix.c mix/pcm_downmix.c!!!
boozer asm
asmboozer at gmail.com
Wed Aug 30 07:51:59 CEST 2017
eg.
in function:SND_PCM_PLUGIN_DEFINE_FUNC(upmix)
487 mix = calloc(1, sizeof(*mix));
488 if (mix == NULL)
489 return -ENOMEM;
mix is allocated here. but at close function, it is not freed, and no
__destructor function available to free it.
and in alsa-lib/src/pcm/pcm_extplug.c
static int snd_pcm_extplug_close(snd_pcm_t *pcm)
{
extplug_priv_t *ext = pcm->private_data;
snd_pcm_close(ext->plug.gen.slave);
clear_ext_params(ext);
if (ext->data->callback->close)
{
ext->data->callback->close(ext->data);
}
free(ext);
return 0;
}
this function does NOT free ext->data.
and
366 static int upmix_close(snd_pcm_extplug_t *ext)
367 {
368 snd_pcm_upmix_t *mix = (snd_pcm_upmix_t *)ext;
369 free(mix->delayline[0]);
370 free(mix->delayline[1]);
371 return 0;
372 }
and this function does NOT free mix itself.
so I think there is memory leak.
More information about the Alsa-devel
mailing list