mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
alsa: free card on error
This commit is contained in:
parent
5bc95234e8
commit
f5f66d1718
1 changed files with 9 additions and 8 deletions
|
|
@ -55,18 +55,15 @@ static struct card *ensure_card(uint32_t index)
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
char *name;
|
char *name;
|
||||||
err = snd_card_get_name(index, &name);
|
err = snd_card_get_name(index, &name);
|
||||||
if (err < 0) {
|
if (err < 0)
|
||||||
errno = -err;
|
goto error;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
snprintf(card_name, sizeof(card_name), "%s", name);
|
snprintf(card_name, sizeof(card_name), "%s", name);
|
||||||
free(name);
|
free(name);
|
||||||
|
|
||||||
err = snd_use_case_mgr_open(&c->ucm, card_name);
|
err = snd_use_case_mgr_open(&c->ucm, card_name);
|
||||||
if (err < 0) {
|
if (err < 0)
|
||||||
errno = -err;
|
goto error;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ((snd_use_case_get(c->ucm, "_alibpref", &alibpref) != 0))
|
if ((snd_use_case_get(c->ucm, "_alibpref", &alibpref) != 0))
|
||||||
alibpref = NULL;
|
alibpref = NULL;
|
||||||
|
|
@ -75,6 +72,10 @@ static struct card *ensure_card(uint32_t index)
|
||||||
spa_list_append(&cards, &c->link);
|
spa_list_append(&cards, &c->link);
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
|
error:
|
||||||
|
free(c);
|
||||||
|
errno = -err;
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void release_card(uint32_t index)
|
static void release_card(uint32_t index)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue