]> git.hungrycats.org Git - linux/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Sep 2018 06:39:40 +0000 (08:39 +0200)
[ Upstream commit b8110a87b75f948d978c06e130cc68026645c4a1 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/qcom/qdsp6/q6afe-dai.c

index 5002dd05bf276496a5d30424e8754e7c83869161..f8298be7038f7823799ba51903f1a0bf3c768df3 100644 (file)
@@ -1180,7 +1180,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;
                }