Fix security vulnerability: Effect command might allow negative indexes am: 500a9feaf8 am: 10428159a9 am: 4e9838e753 am: 1005f6ad72 am: a0a7214a5b
am: e9544ba584
Change-Id: Ifb8d59876db7ecea8c8ae50444e98ca7eeaffd38
diff --git a/msm8909/hal/audio_extn/audio_extn.h b/msm8909/hal/audio_extn/audio_extn.h
index 878071e..51bb54b 100644
--- a/msm8909/hal/audio_extn/audio_extn.h
+++ b/msm8909/hal/audio_extn/audio_extn.h
@@ -319,11 +319,9 @@
#ifndef HFP_ENABLED
#define audio_extn_hfp_is_active(adev) (0)
#define audio_extn_hfp_get_usecase() (-1)
-#define hfp_set_mic_mute(dev, state) (0)
#else
bool audio_extn_hfp_is_active(struct audio_device *adev);
audio_usecase_t audio_extn_hfp_get_usecase();
-int hfp_set_mic_mute(struct audio_device *dev, bool state);
#endif
#ifndef DEV_ARBI_ENABLED
diff --git a/msm8909/hal/audio_extn/hfp.c b/msm8909/hal/audio_extn/hfp.c
index 2cd26c9..30f64d6 100644
--- a/msm8909/hal/audio_extn/hfp.c
+++ b/msm8909/hal/audio_extn/hfp.c
@@ -302,29 +302,6 @@
return false;
}
-int hfp_set_mic_mute(struct audio_device *adev, bool state)
-{
- struct mixer_ctl *ctl;
- const char *mixer_ctl_name = "HFP TX Mute";
- uint32_t set_values[ ] = {0};
-
- ALOGI("%s: enter, state=%d", __func__, state);
-
- if (adev->mode == AUDIO_MODE_IN_CALL) {
- set_values[0] = state;
- ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
- if (!ctl) {
- ALOGE("%s: Could not get ctl for mixer cmd - %s",
- __func__, mixer_ctl_name);
- return -EINVAL;
- }
- mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
- }
-
- ALOGV("%s: exit", __func__);
- return 0;
-}
-
audio_usecase_t audio_extn_hfp_get_usecase()
{
return hfpmod.ucid;
diff --git a/msm8909/hal/msm8916/platform.c b/msm8909/hal/msm8916/platform.c
index 89315c7..3076d1b 100644
--- a/msm8909/hal/msm8916/platform.c
+++ b/msm8909/hal/msm8916/platform.c
@@ -248,7 +248,6 @@
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES] = "speaker-and-headphones",
[SND_DEVICE_OUT_VOICE_HANDSET] = "voice-handset",
[SND_DEVICE_OUT_VOICE_SPEAKER] = "voice-speaker",
- [SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = "voice-speaker-hfp",
[SND_DEVICE_OUT_VOICE_SPEAKER_WSA] = "wsa-voice-speaker",
[SND_DEVICE_OUT_VOICE_HEADPHONES] = "voice-headphones",
[SND_DEVICE_OUT_HDMI] = "hdmi",
@@ -297,7 +296,6 @@
[SND_DEVICE_IN_HEADSET_MIC] = "headset-mic",
[SND_DEVICE_IN_HEADSET_MIC_FLUENCE] = "headset-mic",
[SND_DEVICE_IN_VOICE_SPEAKER_MIC] = "voice-speaker-mic",
- [SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP] = "voice-speaker-mic-hfp",
[SND_DEVICE_IN_VOICE_HEADSET_MIC] = "voice-headset-mic",
[SND_DEVICE_IN_HDMI_MIC] = "hdmi-mic",
[SND_DEVICE_IN_BT_SCO_MIC] = "bt-sco-mic",
@@ -345,7 +343,6 @@
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES] = 10,
[SND_DEVICE_OUT_VOICE_HANDSET] = 7,
[SND_DEVICE_OUT_VOICE_SPEAKER] = 14,
- [SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = 140,
[SND_DEVICE_OUT_VOICE_SPEAKER_WSA] = 135,
[SND_DEVICE_OUT_VOICE_HEADPHONES] = 10,
[SND_DEVICE_OUT_HDMI] = 18,
@@ -393,7 +390,6 @@
[SND_DEVICE_IN_HEADSET_MIC] = 8,
[SND_DEVICE_IN_HEADSET_MIC_FLUENCE] = 47,
[SND_DEVICE_IN_VOICE_SPEAKER_MIC] = 11,
- [SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP] = 141,
[SND_DEVICE_IN_VOICE_HEADSET_MIC] = 8,
[SND_DEVICE_IN_HDMI_MIC] = 4,
[SND_DEVICE_IN_BT_SCO_MIC] = 21,
@@ -447,7 +443,6 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_HANDSET)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_HFP)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_WSA)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_HEADPHONES)},
{TO_NAME_INDEX(SND_DEVICE_OUT_HDMI)},
@@ -492,7 +487,6 @@
{TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_NS)},
{TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)},
{TO_NAME_INDEX(SND_DEVICE_IN_HEADSET_MIC)},
- {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP)},
{TO_NAME_INDEX(SND_DEVICE_IN_HEADSET_MIC_FLUENCE)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_HEADSET_MIC)},
@@ -1611,23 +1605,8 @@
acdb_dev_type = ACDB_DEV_TYPE_OUT;
else
acdb_dev_type = ACDB_DEV_TYPE_IN;
-
- if ((usecase->type == PCM_HFP_CALL)) {
- /* TX path calibration */
- my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
+ my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
sample_rate);
-
- /* RX path calibration */
- snd_device = usecase->out_snd_device;
- acdb_dev_id = acdb_device_table[snd_device];
- ALOGV("%s: sending audio calibration for snd_device(%d) acdb_id(%d)",
- __func__, snd_device, acdb_dev_id);
- my_data->acdb_send_audio_cal(acdb_dev_id, ACDB_DEV_TYPE_OUT, APP_TYPE_SYSTEM_SOUNDS,
- sample_rate);
- } else {
- my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
- sample_rate);
- }
}
return 0;
}
@@ -1960,8 +1939,6 @@
} else if (devices & AUDIO_DEVICE_OUT_SPEAKER) {
if (my_data->is_wsa_speaker)
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_WSA;
- else if (audio_extn_hfp_is_active(adev))
- snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_HFP;
else
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
} else if (devices & AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET ||
@@ -2150,10 +2127,8 @@
}
} else {
snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC;
- if (audio_extn_hfp_is_active(adev)) {
- snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP;
+ if (audio_extn_hfp_is_active(adev))
platform_set_echo_reference(adev->platform, true);
- }
}
}
} else if (source == AUDIO_SOURCE_CAMCORDER) {
diff --git a/msm8909/hal/msm8916/platform.h b/msm8909/hal/msm8916/platform.h
index 680f0d1..507926c 100644
--- a/msm8909/hal/msm8916/platform.h
+++ b/msm8909/hal/msm8916/platform.h
@@ -61,7 +61,6 @@
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
SND_DEVICE_OUT_VOICE_HANDSET,
SND_DEVICE_OUT_VOICE_SPEAKER,
- SND_DEVICE_OUT_VOICE_SPEAKER_HFP,
SND_DEVICE_OUT_VOICE_SPEAKER_WSA,
SND_DEVICE_OUT_VOICE_HEADPHONES,
SND_DEVICE_OUT_HDMI,
@@ -116,7 +115,6 @@
SND_DEVICE_IN_HEADSET_MIC,
SND_DEVICE_IN_HEADSET_MIC_FLUENCE,
SND_DEVICE_IN_VOICE_SPEAKER_MIC,
- SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP,
SND_DEVICE_IN_VOICE_HEADSET_MIC,
SND_DEVICE_IN_HDMI_MIC,
SND_DEVICE_IN_BT_SCO_MIC,
diff --git a/msm8909/hal/voice.c b/msm8909/hal/voice.c
index fd4d5b8..41a0699 100644
--- a/msm8909/hal/voice.c
+++ b/msm8909/hal/voice.c
@@ -329,13 +329,10 @@
int err = 0;
adev->voice.mic_mute = state;
- if (adev->mode == AUDIO_MODE_IN_CALL && audio_extn_hfp_is_active(adev)) {
- err = hfp_set_mic_mute(adev, state);
- } else if (adev->mode == AUDIO_MODE_IN_CALL) {
+ if (adev->mode == AUDIO_MODE_IN_CALL)
err = platform_set_mic_mute(adev->platform, state);
- } else if (adev->mode == AUDIO_MODE_IN_COMMUNICATION) {
+ if (adev->mode == AUDIO_MODE_IN_COMMUNICATION)
err = voice_extn_compress_voip_set_mic_mute(adev, state);
- }
return err;
}