Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 979da89a authored by Axel Lin's avatar Axel Lin Committed by Liam Girdwood
Browse files

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: default avatarAxel Lin <axel.lin@gmail.com>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent b37fa16e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);