diff options
author | Axel Lin <axel.lin@gmail.com> | 2011-05-16 10:19:01 -0400 |
---|---|---|
committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2011-05-27 05:49:09 -0400 |
commit | 0514e9acd7655c708fbf12a659ea43d835bc688a (patch) | |
tree | 5f9ecf1224773a0ca671d8d516c507d133cbf2f1 /drivers/mfd | |
parent | 4aa922c024b2a194d7b68b22a66dfcf86e7838b3 (diff) |
mfd: Fix off-by-one value range checking for tps65910_i2c_write
If bytes == (TPS65910_MAX_REGISTER + 1), we have a buffer overflow when
doing memcpy(&msg[1], src, bytes).
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/tps65910.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c index bf649cf6a0ae..e31824870b9f 100644 --- a/drivers/mfd/tps65910.c +++ b/drivers/mfd/tps65910.c | |||
@@ -71,7 +71,7 @@ static int tps65910_i2c_write(struct tps65910 *tps65910, u8 reg, | |||
71 | u8 msg[TPS65910_MAX_REGISTER + 1]; | 71 | u8 msg[TPS65910_MAX_REGISTER + 1]; |
72 | int ret; | 72 | int ret; |
73 | 73 | ||
74 | if (bytes > (TPS65910_MAX_REGISTER + 1)) | 74 | if (bytes > TPS65910_MAX_REGISTER) |
75 | return -EINVAL; | 75 | return -EINVAL; |
76 | 76 | ||
77 | msg[0] = reg; | 77 | msg[0] = reg; |