OSDN Git Service

platform/chrome: cros_ec_sensorhub: Off by one in cros_sensorhub_send_sample()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 7 Apr 2020 09:29:35 +0000 (12:29 +0300)
committerEnric Balletbo i Serra <enric.balletbo@collabora.com>
Mon, 13 Apr 2020 06:09:27 +0000 (08:09 +0200)
The sensorhub->push_data[] array has sensorhub->sensor_num elements.
It's allocated in cros_ec_sensorhub_ring_add().  So the > should be >=
to prevent a read one element beyond the end of the array.

Fixes: 145d59baff59 ("platform/chrome: cros_ec_sensorhub: Add FIFO support")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
drivers/platform/chrome/cros_ec_sensorhub_ring.c

index 230e6cf..85e8ba7 100644 (file)
@@ -40,7 +40,7 @@ cros_sensorhub_send_sample(struct cros_ec_sensorhub *sensorhub,
        int id = sample->sensor_id;
        struct iio_dev *indio_dev;
 
-       if (id > sensorhub->sensor_num)
+       if (id >= sensorhub->sensor_num)
                return -EINVAL;
 
        cb = sensorhub->push_data[id].push_data_cb;