mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
power: supply: core: fix supplied_from allocations
If dts property power-supplies has multiple values, then accessing to
psy->supplied_from[i-1] in __power_supply_populate_supplied_from will
overrun supplied_from array.
Fixes: f6e0b081fb ("power_supply: Populate supplied_from hierarchy from the device tree")
Signed-off-by: Lucas Tsai <lucas_tsai@richtek.com>
Link: https://patch.msgid.link/20260609114403.3896073-1-lucas_tsai@richtek.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
4acc0138c4
commit
ba61aed9a3
|
|
@ -292,18 +292,13 @@ static int power_supply_check_supplies(struct power_supply *psy)
|
|||
if (cnt == 1)
|
||||
return 0;
|
||||
|
||||
/* All supplies found, allocate char ** array for filling */
|
||||
psy->supplied_from = devm_kzalloc(&psy->dev, sizeof(*psy->supplied_from),
|
||||
/* All supplies found, allocate char * array for filling */
|
||||
psy->supplied_from = devm_kcalloc(&psy->dev,
|
||||
cnt - 1, sizeof(*psy->supplied_from),
|
||||
GFP_KERNEL);
|
||||
if (!psy->supplied_from)
|
||||
return -ENOMEM;
|
||||
|
||||
*psy->supplied_from = devm_kcalloc(&psy->dev,
|
||||
cnt - 1, sizeof(**psy->supplied_from),
|
||||
GFP_KERNEL);
|
||||
if (!*psy->supplied_from)
|
||||
return -ENOMEM;
|
||||
|
||||
return power_supply_populate_supplied_from(psy);
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user