]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: qdsp6: qdafe: fix some off by one bugs
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 27 Jun 2018 08:56:53 +0000 (11:56 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Oct 2018 23:59:11 +0000 (16:59 -0700)
[ Upstream commit c54c1c5ee8e73b7cb752834e52e2129b1dab00bd ]

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>
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.c

index 01f43218984b9d59ee2230ca210e26306dd8ee56..69a7896cb7138929a1e2bb6739f1838c4a240767 100644 (file)
@@ -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);
        }