On Sun, 25 Nov 2007, Lennart Poettering wrote: > On Sun, 25.11.07 22:56, Jaroslav Kysela (perex@xxxxxxxx) 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@xxxxxxxx> Linux Kernel Sound Maintainer ALSA Project _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel