[alsa-devel] ALSA Leaking memory

Lennart Poettering mznyfn at 0pointer.de
Sun Nov 25 23:10:04 CET 2007


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?

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4


More information about the Alsa-devel mailing list