ASoC: qdsp6: q6afe-dai: fix a range check in of_q6afe_parse_dai_data()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 13 Jul 2018 15:05:57 +0000 (18:05 +0300)
committerMark Brown <broonie@kernel.org>
Fri, 13 Jul 2018 15:26:09 +0000 (16:26 +0100)
The main thing is that the data->priv[] array has AFE_PORT_MAX elements
so the > condition should be >=.  But we may as well check for negative
values as well just to be safe.

Fixes: 24c4cbcfac09 ("ASoC: qdsp6: q6afe: Add q6afe dai driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/qdsp6/q6afe-dai.c

index a373ca5523ffd2fc46cb7b25d2d56c255e5b7e81..9ba95956ada8b6b2dc183d2562fb96dc8ca99e16 100644 (file)
@@ -1183,7 +1183,7 @@ static void of_q6afe_parse_dai_data(struct device *dev,
                int id, i, num_lines;
 
                ret = of_property_read_u32(node, "reg", &id);
-               if (ret || id > AFE_PORT_MAX) {
+               if (ret || id < 0 || id >= AFE_PORT_MAX) {
                        dev_err(dev, "valid dai id not found:%d\n", ret);
                        continue;
                }