aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo A. R. Silva <garsilva@embeddedor.com>2017-07-06 17:49:18 -0400
committerMark Brown <broonie@kernel.org>2017-07-07 08:48:33 -0400
commitda2629684822091bf15c6c14d8e33b75dfce8637 (patch)
tree0304b11bc79c62dde3ad513be278ce7aaabd27ca
parent8d67f64f7739464c352d4b167ed1748f3b2c1f44 (diff)
regulator: axp20x: add NULL check on devm_kzalloc() return value
Check return value from call to devm_kzalloc() in order to prevent a NULL pointer dereference. This issue was detected using Coccinelle and the following semantic patch: @@ expression x; identifier fld; @@ * x = devm_kzalloc(...); ... when != x == NULL x->fld Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/regulator/axp20x-regulator.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c
index e2608fe770b9..f18b36dd57dd 100644
--- a/drivers/regulator/axp20x-regulator.c
+++ b/drivers/regulator/axp20x-regulator.c
@@ -691,6 +691,9 @@ static int axp20x_regulator_probe(struct platform_device *pdev)
691 (regulators == axp809_regulators && i == AXP809_DC1SW)) { 691 (regulators == axp809_regulators && i == AXP809_DC1SW)) {
692 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), 692 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
693 GFP_KERNEL); 693 GFP_KERNEL);
694 if (!new_desc)
695 return -ENOMEM;
696
694 *new_desc = regulators[i]; 697 *new_desc = regulators[i];
695 new_desc->supply_name = dcdc1_name; 698 new_desc->supply_name = dcdc1_name;
696 desc = new_desc; 699 desc = new_desc;
@@ -700,6 +703,9 @@ static int axp20x_regulator_probe(struct platform_device *pdev)
700 (regulators == axp809_regulators && i == AXP809_DC5LDO)) { 703 (regulators == axp809_regulators && i == AXP809_DC5LDO)) {
701 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), 704 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
702 GFP_KERNEL); 705 GFP_KERNEL);
706 if (!new_desc)
707 return -ENOMEM;
708
703 *new_desc = regulators[i]; 709 *new_desc = regulators[i];
704 new_desc->supply_name = dcdc5_name; 710 new_desc->supply_name = dcdc5_name;
705 desc = new_desc; 711 desc = new_desc;