power: supply: gpio-charger: Fix set charge current limits
commitafc6e39e82upstream. 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:be2919d835("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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
990730ddbd
commit
6abbbd8286
@@ -67,6 +67,14 @@ static int set_charge_current_limit(struct gpio_charger *gpio_charger, int val)
|
||||
if (gpio_charger->current_limit_map[i].limit_ua <= val)
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* If a valid charge current limit isn't found, default to smallest
|
||||
* current limitation for safety reasons.
|
||||
*/
|
||||
if (i >= gpio_charger->current_limit_map_size)
|
||||
i = gpio_charger->current_limit_map_size - 1;
|
||||
|
||||
mapping = gpio_charger->current_limit_map[i];
|
||||
|
||||
for (i = 0; i < ndescs; i++) {
|
||||
|
||||
Reference in New Issue
Block a user