diff options
author | Mark Brown <broonie@linaro.org> | 2013-09-27 15:56:20 +0200 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-09-27 15:56:20 +0200 |
commit | 92396e78d339e1ba8c50e69fee96197a56d3911a (patch) | |
tree | 7ccf274d046c0afe3bf24d6344e45adb51af1022 | |
parent | Merge remote-tracking branch 'asoc/fix/88pm860x' into asoc-linus (diff) | |
parent | ASoC: ab8500-codec: info leak in anc_status_control_put() (diff) | |
download | linux-92396e78d339e1ba8c50e69fee96197a56d3911a.tar.xz linux-92396e78d339e1ba8c50e69fee96197a56d3911a.zip |
Merge remote-tracking branch 'asoc/fix/ab8500' into asoc-linus
-rw-r--r-- | sound/soc/codecs/ab8500-codec.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c index b8ba0adacfce..80555d7551e6 100644 --- a/sound/soc/codecs/ab8500-codec.c +++ b/sound/soc/codecs/ab8500-codec.c @@ -1225,13 +1225,18 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); struct device *dev = codec->dev; bool apply_fir, apply_iir; - int req, status; + unsigned int req; + int status; dev_dbg(dev, "%s: Enter.\n", __func__); mutex_lock(&drvdata->anc_lock); req = ucontrol->value.integer.value[0]; + if (req >= ARRAY_SIZE(enum_anc_state)) { + status = -EINVAL; + goto cleanup; + } if (req != ANC_APPLY_FIR_IIR && req != ANC_APPLY_FIR && req != ANC_APPLY_IIR) { dev_err(dev, "%s: ERROR: Unsupported status to set '%s'!\n", |