diff mbox

ASoC: qdsp6: q6afe-dai: fix a range check in of_q6afe_parse_dai_data()

Message ID 20180713150557.gsx7wrau2l7tg2jq@kili.mountain (mailing list archive)
State Accepted
Commit b8110a87b75f948d978c06e130cc68026645c4a1
Headers show

Commit Message

Dan Carpenter July 13, 2018, 3:05 p.m. UTC
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>

Comments

Srinivas Kandagatla July 13, 2018, 3:45 p.m. UTC | #1
On 13/07/18 16:05, Dan Carpenter wrote:
> 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>

Thanks for the patch,

Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

> 
> diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-dai.c
> index e7f809e3ee1f..89df25e711c5 100644
> --- a/sound/soc/qcom/qdsp6/q6afe-dai.c
> +++ b/sound/soc/qcom/qdsp6/q6afe-dai.c
> @@ -1329,7 +1329,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;
>   		}
>
diff mbox

Patch

diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-dai.c
index e7f809e3ee1f..89df25e711c5 100644
--- a/sound/soc/qcom/qdsp6/q6afe-dai.c
+++ b/sound/soc/qcom/qdsp6/q6afe-dai.c
@@ -1329,7 +1329,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;
 		}