ASoC: wm0010: Fix possible out-of-bounds array read
authorTakashi Iwai <tiwai@suse.de>
Wed, 30 Oct 2013 07:35:03 +0000 (08:35 +0100)
committerMark Brown <broonie@linaro.org>
Wed, 30 Oct 2013 16:38:21 +0000 (09:38 -0700)
Spotted by coverity CID 744701.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/codecs/wm0010.c

index d5ebcb00019b7b807d9ad7e3940333c5ad2a4c4f..bf7804a12863924af7d3c4d3cbb2dd467a542dd8 100644 (file)
@@ -793,11 +793,11 @@ static int wm0010_set_sysclk(struct snd_soc_codec *codec, int source,
                wm0010->max_spi_freq = 0;
        } else {
                for (i = 0; i < ARRAY_SIZE(pll_clock_map); i++)
-                       if (freq >= pll_clock_map[i].max_sysclk)
+                       if (freq >= pll_clock_map[i].max_sysclk) {
+                               wm0010->max_spi_freq = pll_clock_map[i].max_pll_spi_speed;
+                               wm0010->pll_clkctrl1 = pll_clock_map[i].pll_clkctrl1;
                                break;
-
-               wm0010->max_spi_freq = pll_clock_map[i].max_pll_spi_speed;
-               wm0010->pll_clkctrl1 = pll_clock_map[i].pll_clkctrl1;
+                       }
        }
 
        return 0;