2010-07-26 07:33:54

by Axel Lin

[permalink] [raw]
Subject: [PATCH resend] ab3100: fix off-by-one value range checking for voltage selector

We use voltage selector as an array index for typ_voltages.
Thus the valid range for voltage selector should be 0..voltages_len-1.

Signed-off-by: Axel Lin <[email protected]>
Acked-by: Mark Brown <[email protected]>
---
Simply update the changelog explaining that the reason for the limit is that it's an array index.

drivers/regulator/ab3100.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/ab3100.c b/drivers/regulator/ab3100.c
index 7b14a67..1179099 100644
--- a/drivers/regulator/ab3100.c
+++ b/drivers/regulator/ab3100.c
@@ -286,7 +286,7 @@ static int ab3100_list_voltage_regulator(struct regulator_dev *reg,
{
struct ab3100_regulator *abreg = reg->reg_data;

- if (selector > abreg->voltages_len)
+ if (selector >= abreg->voltages_len)
return -EINVAL;
return abreg->typ_voltages[selector];
}
@@ -318,7 +318,7 @@ static int ab3100_get_voltage_regulator(struct regulator_dev *reg)
regval &= 0xE0;
regval >>= 5;

- if (regval > abreg->voltages_len) {
+ if (regval >= abreg->voltages_len) {
dev_err(&reg->dev,
"regulator register %02x contains an illegal voltage setting\n",
abreg->regreg);
--
1.5.4.3



2010-07-26 09:02:10

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH resend] ab3100: fix off-by-one value range checking for voltage selector

2010/7/26 Axel Lin <[email protected]>:

> We use voltage selector as an array index for typ_voltages.
> Thus the valid range for voltage selector should be 0..voltages_len-1.
>
> Signed-off-by: Axel Lin <[email protected]>
> Acked-by: Mark Brown <[email protected]>

Acked-by: Linus Walleij <[email protected]>

Yours,
Linus Walleij

2010-07-27 10:35:31

by Liam Girdwood

[permalink] [raw]
Subject: Re: [PATCH resend] ab3100: fix off-by-one value range checking for voltage selector

On Mon, 2010-07-26 at 11:02 +0200, Linus Walleij wrote:
> 2010/7/26 Axel Lin <[email protected]>:
>
> > We use voltage selector as an array index for typ_voltages.
> > Thus the valid range for voltage selector should be 0..voltages_len-1.
> >
> > Signed-off-by: Axel Lin <[email protected]>
> > Acked-by: Mark Brown <[email protected]>
>
> Acked-by: Linus Walleij <[email protected]>

Applied.

Thanks

Liam
--
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk