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;
 }