hal: fix sound card name during platform initialization
sound card name is truncated during platform initialization.
Duplicate sound card name before operating on the string.
Change-Id: Ie16f13e51c35a6f22756e477832bf96e898fe8ac
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 5cb18fd..d693aae 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1286,7 +1286,12 @@
continue;
}
- snd_card_name = mixer_get_name(adev->mixer);
+ snd_card_name = strdup(mixer_get_name(adev->mixer));
+ if (!snd_card_name) {
+ ALOGE("failed to allocate memory for snd_card_name\n");
+ free(my_data);
+ return NULL;
+ }
ALOGV("%s: snd_card_name: %s", __func__, snd_card_name);
my_data->hw_info = hw_info_init(snd_card_name);
@@ -1348,6 +1353,7 @@
ALOGE("%s: Failed to init audio route controls, aborting.",
__func__);
free(my_data);
+ free(snd_card_name);
return NULL;
}
adev->snd_card = snd_card_num;
@@ -1361,6 +1367,7 @@
if (snd_card_num >= MAX_SND_CARD) {
ALOGE("%s: Unable to find correct sound card, aborting.", __func__);
free(my_data);
+ free(snd_card_name);
return NULL;
}
@@ -1559,6 +1566,7 @@
strdup("SLIM_5_RX SampleRate");
my_data->edid_info = NULL;
+ free(snd_card_name);
return my_data;
}