summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorNick Dyer <nick.dyer@itdev.co.uk>2011-09-22 14:03:28 +0100
committerNick Dyer <nick.dyer@itdev.co.uk>2012-10-16 16:00:54 +0100
commitbdd4466ef74f22c80eefa34066c1a34519410b5f (patch)
tree16bf90951c2d6a88f7931b781f269b7c81f75e61 /drivers/input
parentb436ba6fe126da68fc83abf158d1052198b92f49 (diff)
Input: atmel_mxt_ts - Add check for writing outside object bounds
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/touchscreen/atmel_mxt_ts.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index def6698d4176..4b4930cec975 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -509,6 +509,12 @@ static int mxt_write_object(struct mxt_data *data,
if (!object || offset >= object->size)
return -EINVAL;
+ if (offset >= object->size * object->instances) {
+ dev_err(&data->client->dev, "Tried to write outside object T%d"
+ " offset:%d, size:%d\n", type, offset, object->size);
+ return -EINVAL;
+ }
+
reg = object->start_address;
return mxt_write_reg(data->client, reg + offset, val);
}