Fix the error path of snd_pcm_hook_add_conf()

Fixed the segfault in the error path of snd_pcm_hook_add_conf()
(calling invalid install_func pointer).
Also, added the missing snd_dlclose() to release the handle properly.
This commit is contained in:
Takashi Iwai 2006-04-25 17:32:23 +02:00
parent 9c69158f31
commit 9123203f8d

View file

@ -397,16 +397,18 @@ static int snd_pcm_hook_add_conf(snd_pcm_t *pcm, snd_config_t *root, snd_config_
_err:
if (type)
snd_config_delete(type);
if (err >= 0 && args && snd_config_get_string(args, &str) >= 0) {
if (err >= 0) {
if (args && snd_config_get_string(args, &str) >= 0) {
err = snd_config_search_definition(root, "hook_args", str, &args);
if (err < 0) {
if (err < 0)
SNDERR("unknown hook_args %s", str);
} else {
else
err = install_func(pcm, args);
snd_config_delete(args);
}
} else
err = install_func(pcm, args);
snd_dlclose(h);
}
if (err < 0)
return err;
return 0;