[alsa-devel] ALSA Leaking memory
Jaroslav Kysela
perex at perex.cz
Sun Nov 25 23:23:14 CET 2007
On Sun, 25 Nov 2007, Lennart Poettering wrote:
> On Sun, 25.11.07 22:56, Jaroslav Kysela (perex at perex.cz) wrote:
>
> > > ==22198== 10 bytes in 1 blocks are definitely lost in loss record 1 of 3
> > > ==22198== at 0x4023765: malloc (vg_replace_malloc.c:149)
> > > ==22198== by 0x417C44F: strdup (strdup.c:43)
> > > ==22198== by 0x4071954: snd_determine_driver (in /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x406E80C: snd_config_hook_load_for_all_cards (in /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x406EC7C: (within /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x406F896: snd_config_searcha_hooks (in /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x406FA74: snd_config_search_alias_hooks (in /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x406FCD9: snd_config_search_definition (in /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x40952FE: (within /usr/lib/libasound.so.2.0.0)
> > > ==22198== by 0x80484D7: main (in /home/lennart/alsa-test)
> >
> > Broken valgrind?
>
> Unlikely.
>
> > I cannot reproduce here and from first glance, the error
> > path in snd_config_hook_load_for_all_cards is good.
>
> I don't fully grok the code of that function
> (snd_config_hook_load_for_all_cards()), but from *my* first glance I see
> that snd_determine_driver() allocates the string. Immediately after
> that call there are at least two "continue"s which will cause immediate
> jumping to the next iteration of the loop this whole code lives in,
> without ever freeing the string.
>
> Or am I blind or missed something?
No, I'm blind (seeing and associating continue to inner while) ;-) Thanks
for notice. This commit should fix the problem:
http://hg.alsa-project.org/alsa-lib/rev/c8aa952a4579
Jaroslav
-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project
More information about the Alsa-devel
mailing list