mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-04 13:30:08 -05:00
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:
parent
9c69158f31
commit
9123203f8d
1 changed files with 11 additions and 9 deletions
|
|
@ -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) {
|
||||
err = snd_config_search_definition(root, "hook_args", str, &args);
|
||||
if (err < 0) {
|
||||
SNDERR("unknown hook_args %s", str);
|
||||
} else {
|
||||
err = install_func(pcm, args);
|
||||
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)
|
||||
SNDERR("unknown hook_args %s", str);
|
||||
else
|
||||
err = install_func(pcm, args);
|
||||
snd_config_delete(args);
|
||||
}
|
||||
} else
|
||||
err = install_func(pcm, args);
|
||||
} else
|
||||
err = install_func(pcm, args);
|
||||
snd_dlclose(h);
|
||||
}
|
||||
if (err < 0)
|
||||
return err;
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue