At Wed, 30 Oct 2013 09:48:38 -0700, Mark Brown wrote:
On Wed, Oct 30, 2013 at 08:35:05AM +0100, Takashi Iwai wrote:
int i = get_coeff(priv->mclk, params_rate(hw_params));
- if (i < 0)
return -EINVAL;
This is ignoring the supplied error code, I'd expect to see the error code being passed back (and fixed at the point where it's injected if it's just returning -1 or something).
Ah right. The revised patch is attached below.
Takashi
--- From: Takashi Iwai tiwai@suse.de Subject: [PATCH v2] ASoC: ml26124: Fix negative array index read
get_coeff() may return an error.
Spotted by coverity CID 703394.
Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/soc/codecs/ml26124.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/ml26124.c b/sound/soc/codecs/ml26124.c index 26118828782b..185fa3bc3052 100644 --- a/sound/soc/codecs/ml26124.c +++ b/sound/soc/codecs/ml26124.c @@ -342,6 +342,8 @@ static int ml26124_hw_params(struct snd_pcm_substream *substream, struct ml26124_priv *priv = snd_soc_codec_get_drvdata(codec); int i = get_coeff(priv->mclk, params_rate(hw_params));
+ if (i < 0) + return i; priv->substream = substream; priv->rate = params_rate(hw_params);