]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ASoC: nau8821: clarify out-of-bounds check
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Mon, 25 Oct 2021 18:59:29 +0000 (13:59 -0500)
committerMark Brown <broonie@kernel.org>
Wed, 27 Oct 2021 10:31:11 +0000 (11:31 +0100)
cppcheck reports a false positive

sound/soc/codecs/nau8821.c:390:17: error: Array 'dmic_speed_sel[4]'
accessed at index 4, which is out of bounds. [arrayIndexOutOfBounds]

  dmic_speed_sel[i].param, dmic_speed_sel[i].val);
                ^
sound/soc/codecs/nau8821.c:378:2: note: After for loop, i has value 4
 for (i = 0 ; i < 4 ; i++)
 ^
sound/soc/codecs/nau8821.c:390:17: note: Array index out of bounds
  dmic_speed_sel[i].param, dmic_speed_sel[i].val);
                ^

While the code is not incorrect, we can deal with the out-of-bounds
check in a clearer way that makes static analysis happy.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20211025185933.144327-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/nau8821.c

index 2757d2eeb48a592d7e3e9d4d6828085f6122f609..2de81837748409af4f53a0087b4e58eb1dad3c76 100644 (file)
@@ -381,7 +381,7 @@ static int dmic_clock_control(struct snd_soc_dapm_widget *w,
                        speed_selection = dmic_speed_sel[i].val;
                        break;
                }
-       if (speed_selection < 0)
+       if (i == 4)
                return -EINVAL;
 
        dev_dbg(nau8821->dev,