At Tue, 03 Nov 2009 08:09:34 +0100, I wrote: > > At Mon, 02 Nov 2009 12:58:20 -0500, > John Lindgren wrote: > > > > On Mon, 2009-11-02 at 15:55 +0100, Takashi Iwai wrote: > > > Thanks. I guess this depends on the config files. > > > Could you attach your ones? > > > > I can reproduce with only the stock /usr/share/alsa/alsa.conf from > > Debian installed if I try to use the "null" device after > > snd_device_name_hint. /usr/share/alsa/alsa.conf is attached. > > Thanks! I could reproduce the problem on my machine, too. > > Now I think I found the culprit. This is not in the core conf.c code, > but it's in namehint.c. Try the patch below. > > The point is that the variable "res" can be two different instances > in try_config(). One is the result of snd_config_search_definition(). > In this case, res is the copied (expanded) objects. > > This one is freed in the middle of try_config(), and then res is > assigned again to another one by snd_config_search_alias_hooks(). > This guy is no expanded object but a reference. > > However, the original code calls snd_config_free(res) no matter which > object is. So, freeing the latter one results in the breakage of the > config tree. > > The patch adds the check of the object type to be freed or not. Since no problem is found with valgrind, I applied the patch to git tree now. thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel