diff mbox

ASoC: qdsp6: qdafe: fix some off by one bugs

Message ID 20180627085653.v5bi34k2ozkvvrsr@kili.mountain (mailing list archive)
State Accepted
Commit c54c1c5ee8e73b7cb752834e52e2129b1dab00bd
Headers show

Commit Message

Dan Carpenter June 27, 2018, 8:56 a.m. UTC
The > should be >= or we could read one element beyond the end of the
port_maps[] array.

Fixes: 7fa2d70f9766 ("ASoC: qdsp6: q6afe: Add q6afe driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Comments

Srinivas Kandagatla June 28, 2018, 8:36 a.m. UTC | #1
Thanks for the patch,

On 27/06/18 09:56, Dan Carpenter wrote:
> The > should be >= or we could read one element beyond the end of the
> port_maps[] array.
> 
> Fixes: 7fa2d70f9766 ("ASoC: qdsp6: q6afe: Add q6afe driver")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 

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

> diff --git a/sound/soc/qcom/qdsp6/q6afe.c b/sound/soc/qcom/qdsp6/q6afe.c
> index 01f43218984b..69a7896cb713 100644
> --- a/sound/soc/qcom/qdsp6/q6afe.c
> +++ b/sound/soc/qcom/qdsp6/q6afe.c
> @@ -777,7 +777,7 @@ static int q6afe_callback(struct apr_device *adev, struct apr_resp_pkt *data)
>    */
>   int q6afe_get_port_id(int index)
>   {
> -	if (index < 0 || index > AFE_PORT_MAX)
> +	if (index < 0 || index >= AFE_PORT_MAX)
>   		return -EINVAL;
>   
>   	return port_maps[index].port_id;
> @@ -1014,7 +1014,7 @@ int q6afe_port_stop(struct q6afe_port *port)
>   
>   	port_id = port->id;
>   	index = port->token;
> -	if (index < 0 || index > AFE_PORT_MAX) {
> +	if (index < 0 || index >= AFE_PORT_MAX) {
>   		dev_err(afe->dev, "AFE port index[%d] invalid!\n", index);
>   		return -EINVAL;
>   	}
> @@ -1355,7 +1355,7 @@ struct q6afe_port *q6afe_port_get_from_id(struct device *dev, int id)
>   	unsigned long flags;
>   	int cfg_type;
>   
> -	if (id < 0 || id > AFE_PORT_MAX) {
> +	if (id < 0 || id >= AFE_PORT_MAX) {
>   		dev_err(dev, "AFE port token[%d] invalid!\n", id);
>   		return ERR_PTR(-EINVAL);
>   	}
>
diff mbox

Patch

diff --git a/sound/soc/qcom/qdsp6/q6afe.c b/sound/soc/qcom/qdsp6/q6afe.c
index 01f43218984b..69a7896cb713 100644
--- a/sound/soc/qcom/qdsp6/q6afe.c
+++ b/sound/soc/qcom/qdsp6/q6afe.c
@@ -777,7 +777,7 @@  static int q6afe_callback(struct apr_device *adev, struct apr_resp_pkt *data)
  */
 int q6afe_get_port_id(int index)
 {
-	if (index < 0 || index > AFE_PORT_MAX)
+	if (index < 0 || index >= AFE_PORT_MAX)
 		return -EINVAL;
 
 	return port_maps[index].port_id;
@@ -1014,7 +1014,7 @@  int q6afe_port_stop(struct q6afe_port *port)
 
 	port_id = port->id;
 	index = port->token;
-	if (index < 0 || index > AFE_PORT_MAX) {
+	if (index < 0 || index >= AFE_PORT_MAX) {
 		dev_err(afe->dev, "AFE port index[%d] invalid!\n", index);
 		return -EINVAL;
 	}
@@ -1355,7 +1355,7 @@  struct q6afe_port *q6afe_port_get_from_id(struct device *dev, int id)
 	unsigned long flags;
 	int cfg_type;
 
-	if (id < 0 || id > AFE_PORT_MAX) {
+	if (id < 0 || id >= AFE_PORT_MAX) {
 		dev_err(dev, "AFE port token[%d] invalid!\n", id);
 		return ERR_PTR(-EINVAL);
 	}