From: Viresh Kumar Date: Thu, 4 Sep 2014 12:01:22 +0000 (+0530) Subject: power-supply: Don't over-allocate memory for "supplied-from" array X-Git-Tag: v3.18-rc1~41^2~34 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=8f5a37cb28fce189f3d6802ade98a116f59a47bf;p=karo-tx-linux.git power-supply: Don't over-allocate memory for "supplied-from" array In routine power_supply_check_supplies(), 'cnt' is counting the number of supplies passed in "power-supplies" field of a node. The value of 'cnt' will always be one more than the number of supplies after the do-while loop ends. And so we need to allocate memory for 'cnt - 1' char pointers. But we are allocating memory for 'cnt' instead. Fix this by not over-allocating memory. Signed-off-by: Viresh Kumar Signed-off-by: Sebastian Reichel --- diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c index 078afd61490d..10f0b57f00d9 100644 --- a/drivers/power/power_supply_core.c +++ b/drivers/power/power_supply_core.c @@ -234,7 +234,7 @@ static int power_supply_check_supplies(struct power_supply *psy) return -ENOMEM; } - *psy->supplied_from = devm_kzalloc(psy->dev, sizeof(char *) * cnt, + *psy->supplied_from = devm_kzalloc(psy->dev, sizeof(char *) * (cnt - 1), GFP_KERNEL); if (!*psy->supplied_from) { dev_err(psy->dev, "Couldn't allocate memory for supply list\n");