Skip to content

Commit f6279a9

Browse files
DimitriFedraugregkh
authored andcommitted
power: supply: gpio-charger: Fix set charge current limits
commit afc6e39 upstream. Fix set charge current limits for devices which allow to set the lowest charge current limit to be greater zero. If requested charge current limit is below lowest limit, the index equals current_limit_map_size which leads to accessing memory beyond allocated memory. Fixes: be2919d ("power: supply: gpio-charger: add charge-current-limit feature") Cc: stable@vger.kernel.org Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> Link: https://lore.kernel.org/r/20241209-fix-charge-current-limit-v1-1-760d9b8f2af3@liebherr.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent c110095 commit f6279a9

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

drivers/power/supply/gpio-charger.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ static int set_charge_current_limit(struct gpio_charger *gpio_charger, int val)
6767
if (gpio_charger->current_limit_map[i].limit_ua <= val)
6868
break;
6969
}
70+
71+
/*
72+
* If a valid charge current limit isn't found, default to smallest
73+
* current limitation for safety reasons.
74+
*/
75+
if (i >= gpio_charger->current_limit_map_size)
76+
i = gpio_charger->current_limit_map_size - 1;
77+
7078
mapping = gpio_charger->current_limit_map[i];
7179

7280
for (i = 0; i < ndescs; i++) {

0 commit comments

Comments
 (0)