mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-04 13:30:08 -05:00
Fixed SIGSEGV based on thinkos
This commit is contained in:
parent
25ad23d202
commit
735e5473e0
1 changed files with 6 additions and 5 deletions
|
|
@ -437,7 +437,7 @@ int _snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name,
|
||||||
{
|
{
|
||||||
snd_config_iterator_t i, next;
|
snd_config_iterator_t i, next;
|
||||||
int err;
|
int err;
|
||||||
snd_pcm_t *spcm;
|
snd_pcm_t *rpcm = NULL, *spcm;
|
||||||
snd_config_t *slave = NULL, *sconf;
|
snd_config_t *slave = NULL, *sconf;
|
||||||
snd_config_t *hooks = NULL;
|
snd_config_t *hooks = NULL;
|
||||||
snd_config_for_each(i, next, conf) {
|
snd_config_for_each(i, next, conf) {
|
||||||
|
|
@ -471,7 +471,7 @@ int _snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name,
|
||||||
snd_config_delete(sconf);
|
snd_config_delete(sconf);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
err = snd_pcm_hooks_open(pcmp, name, spcm, 1);
|
err = snd_pcm_hooks_open(&rpcm, name, spcm, 1);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
snd_pcm_close(spcm);
|
snd_pcm_close(spcm);
|
||||||
return err;
|
return err;
|
||||||
|
|
@ -486,16 +486,17 @@ int _snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name,
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
SNDERR("unknown pcm_hook %s", str);
|
SNDERR("unknown pcm_hook %s", str);
|
||||||
} else {
|
} else {
|
||||||
err = snd_pcm_hook_add_conf(*pcmp, root, n);
|
err = snd_pcm_hook_add_conf(rpcm, root, n);
|
||||||
snd_config_delete(n);
|
snd_config_delete(n);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
err = snd_pcm_hook_add_conf(*pcmp, root, n);
|
err = snd_pcm_hook_add_conf(rpcm, root, n);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
snd_pcm_close(*pcmp);
|
snd_pcm_close(rpcm);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*pcmp = rpcm;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue