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

Commit 1b69d8e3 authored by Axel Lin's avatar Axel Lin Committed by Liam Girdwood
Browse files

max8998: fix off-by-one value range checking



In max8998_list_voltage() and max8998_set_voltage(),
we use ldo as array index of ldo_voltage_map.
Thus the valid range should be 0 .. ARRAY_SIZE(ldo_voltage_map)-1.

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Acked-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent 4cc2e393
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -119,7 +119,7 @@ static int max8998_list_voltage(struct regulator_dev *rdev,
	int ldo = max8998_get_ldo(rdev);
	int ldo = max8998_get_ldo(rdev);
	int val;
	int val;


	if (ldo > ARRAY_SIZE(ldo_voltage_map))
	if (ldo >= ARRAY_SIZE(ldo_voltage_map))
		return -EINVAL;
		return -EINVAL;


	desc = ldo_voltage_map[ldo];
	desc = ldo_voltage_map[ldo];
@@ -306,7 +306,7 @@ static int max8998_set_voltage(struct regulator_dev *rdev,
	u8 val;
	u8 val;
	bool en_ramp = false;
	bool en_ramp = false;


	if (ldo > ARRAY_SIZE(ldo_voltage_map))
	if (ldo >= ARRAY_SIZE(ldo_voltage_map))
		return -EINVAL;
		return -EINVAL;


	desc = ldo_voltage_map[ldo];
	desc = ldo_voltage_map[ldo];