The following program shows a few leaks in valgrind (ubuntu 12.04, alsa-lib 1.0.25, eglibc 2.15): #include int main() { snd_pcm_t* pcm = 0; snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK, 0); snd_pcm_close(pcm); snd_config_update_free_global(); } Do I close pcm correctly? In file MEMORY-LEAK it is written that program should call snd_config_update_free_global() to free global configuration cache and I do so. I'm not sure, but probably some leaks are caused by glibc.