2011-05-13 09:14:08

by Axel Lin

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
---
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 bf649cf..e318248 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,
u8 msg[TPS65910_MAX_REGISTER + 1];
int ret;

- if (bytes > (TPS65910_MAX_REGISTER + 1))
+ if (bytes > TPS65910_MAX_REGISTER)
return -EINVAL;

msg[0] = reg;
--
1.7.1



2011-05-13 17:46:11

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: Fix off-by-one value range checking for tps65910_i2c_write

Hi Axel,

On Fri, May 13, 2011 at 05:13:57PM +0800, Axel Lin wrote:
> If bytes == (TPS65910_MAX_REGISTER + 1), we have a buffer overflow when
> doing memcpy(&msg[1], src, bytes).
This code is going through Liam's tree, I'm adding him to this thread.
Liam, please add my Acked-by to this patch, if you think it's needed.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/

2011-05-16 12:26:11

by Liam Girdwood

[permalink] [raw]
Subject: Re: [PATCH] mfd: Fix off-by-one value range checking for tps65910_i2c_write

On 13/05/11 18:46, Samuel Ortiz wrote:
> Hi Axel,
>
> On Fri, May 13, 2011 at 05:13:57PM +0800, Axel Lin wrote:
>> If bytes == (TPS65910_MAX_REGISTER + 1), we have a buffer overflow when
>> doing memcpy(&msg[1], src, bytes).
> This code is going through Liam's tree, I'm adding him to this thread.
> Liam, please add my Acked-by to this patch, if you think it's needed.
>

Axel, could you resend to me with Samuels Ack and I'll apply.

Thanks

Liam