diff options
author | rago <rago@google.com> | 2016-11-15 13:00:50 -0800 |
---|---|---|
committer | mh0rst <mhorst@tzi.de> | 2017-01-13 11:33:35 +0100 |
commit | c15fd133cc2f827321ef538383da6dec38581fd1 (patch) | |
tree | 23b7b12504bb9a0edd29aa08fc644021bcb44ece | |
parent | a66b28ebd1117778f025deaab2cf042d3e5ac74c (diff) | |
download | android_hardware_qcom_audio-c15fd133cc2f827321ef538383da6dec38581fd1.tar.gz android_hardware_qcom_audio-c15fd133cc2f827321ef538383da6dec38581fd1.tar.bz2 android_hardware_qcom_audio-c15fd133cc2f827321ef538383da6dec38581fd1.zip |
Effect/Equalizer command might allow negative indexes (msm8909)replicant-6.0-0001
These are the changes from commit a66b28ebd1117778f025deaab2cf042d3e5ac74c applied to the msm8909 directory.
Change-Id: I8e8e76db366b44806f8f8b5804706acdd36a3565
-rw-r--r-- | msm8909/post_proc/equalizer.c | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/msm8909/post_proc/equalizer.c b/msm8909/post_proc/equalizer.c index ce1b462b..b0aaaf34 100644 --- a/msm8909/post_proc/equalizer.c +++ b/msm8909/post_proc/equalizer.c @@ -266,8 +266,12 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p, case EQ_PARAM_BAND_LEVEL: param2 = *param_tmp; - if (param2 >= NUM_EQ_BANDS) { + if (param2 < 0 || param2 >= NUM_EQ_BANDS) { p->status = -EINVAL; + if (param2 < 0) { + android_errorWriteLog(0x534e4554, "32438598"); + ALOGW("\tERROR EQ_PARAM_BAND_LEVEL band %d", param2); + } break; } *(int16_t *)value = (int16_t)equalizer_get_band_level(eq_ctxt, param2); @@ -275,8 +279,12 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p, case EQ_PARAM_CENTER_FREQ: param2 = *param_tmp; - if (param2 >= NUM_EQ_BANDS) { - p->status = -EINVAL; + if (param2 < 0 || param2 >= NUM_EQ_BANDS) { + p->status = -EINVAL; + if (param2 < 0) { + android_errorWriteLog(0x534e4554, "32436341"); + ALOGW("\tERROR EQ_PARAM_CENTER_FREQ band %d", param2); + } break; } *(int32_t *)value = equalizer_get_center_frequency(eq_ctxt, param2); @@ -284,8 +292,12 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p, case EQ_PARAM_BAND_FREQ_RANGE: param2 = *param_tmp; - if (param2 >= NUM_EQ_BANDS) { + if (param2 < 0 || param2 >= NUM_EQ_BANDS) { p->status = -EINVAL; + if (param2 < 0) { + android_errorWriteLog(0x534e4554, "32247948"); + ALOGW("\tERROR EQ_PARAM_BAND_FREQ_RANGE band %d", param2); + } break; } equalizer_get_band_freq_range(eq_ctxt, param2, (uint32_t *)value, @@ -308,9 +320,14 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p, case EQ_PARAM_GET_PRESET_NAME: param2 = *param_tmp; ALOGV("%s: EQ_PARAM_GET_PRESET_NAME: param2: %d", __func__, param2); - if (param2 >= equalizer_get_num_presets(eq_ctxt)) { - p->status = -EINVAL; - break; + if ((param2 < 0 && param2 != PRESET_CUSTOM) || + param2 >= equalizer_get_num_presets(eq_ctxt)) { + p->status = -EINVAL; + if (param2 < 0) { + android_errorWriteLog(0x534e4554, "32588016"); + ALOGW("\tERROR EQ_PARAM_GET_PRESET_NAME preset %d", param2); + } + break; } name = (char *)value; strlcpy(name, equalizer_get_preset_name(eq_ctxt, param2), p->vsize - 1); @@ -365,8 +382,12 @@ int equalizer_set_parameter(effect_context_t *context, effect_param_t *p, case EQ_PARAM_BAND_LEVEL: band = *param_tmp; level = (int32_t)(*(int16_t *)value); - if (band >= NUM_EQ_BANDS) { - p->status = -EINVAL; + if (band < 0 || band >= NUM_EQ_BANDS) { + p->status = -EINVAL; + if (band < 0) { + android_errorWriteLog(0x534e4554, "32585400"); + ALOGW("\tERROR EQ_PARAM_BAND_LEVEL band %d", band); + } break; } equalizer_set_band_level(eq_ctxt, band, level); |