audio: avoid latent media server crash during device is booting
Sometimes media server is killed by alsa_ucm during device is booting.
A alsa_ucm gets a index of "use case device" from get_use_case_index()
function.
But, get_use_case_index() function can be returned a wrong value
(dev_index = -22 used index of dev_list[] array) at booting time.
This patch avoids latent media server crash causing abnormal value
as using index of dev_list[] array.
Change-Id: I961465f99b994d3ab1b26ee74d6d0978159960f4
diff --git a/libalsa-intf/alsa_ucm.c b/libalsa-intf/alsa_ucm.c
index 075deca..59721ad 100644
--- a/libalsa-intf/alsa_ucm.c
+++ b/libalsa-intf/alsa_ucm.c
@@ -1064,7 +1064,8 @@
dev_list =
uc_mgr->card_ctxt_ptr->use_case_verb_list[verb_index].device_ctrls;
dev_index = get_use_case_index(uc_mgr, device, CTRL_LIST_DEVICE);
- capability = dev_list[dev_index].capability;
+ if (dev_index >= 0)
+ capability = dev_list[dev_index].capability;
if (strncmp(uc_mgr->card_ctxt_ptr->current_verb, SND_USE_CASE_VERB_INACTIVE,
strlen(SND_USE_CASE_VERB_INACTIVE))) {
uc_list =