diff options
author | Krzysztof Kozlowski <k.kozlowski@samsung.com> | 2014-09-16 18:10:40 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2014-09-25 01:36:42 +0200 |
commit | 920ac5be91bc447c5ef82f457207a169aa79c5f6 (patch) | |
tree | b79044cc494de592d1ccb733360bc1145add7de8 /drivers/power/max8925_power.c | |
parent | bq27x00_battery: Add support to bq27742 (diff) | |
download | linux-920ac5be91bc447c5ef82f457207a169aa79c5f6.tar.xz linux-920ac5be91bc447c5ef82f457207a169aa79c5f6.zip |
power: max8925: Fix NULL ptr dereference on memory allocation failure
Check the return value of devm_kzalloc() to fix possible NULL pointer
dereference and properly exit the probe() on memory allocation failure.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Diffstat (limited to 'drivers/power/max8925_power.c')
-rw-r--r-- | drivers/power/max8925_power.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/power/max8925_power.c b/drivers/power/max8925_power.c index b4513f284bbc..0cf237808d47 100644 --- a/drivers/power/max8925_power.c +++ b/drivers/power/max8925_power.c @@ -452,13 +452,14 @@ max8925_power_dt_init(struct platform_device *pdev) pdata = devm_kzalloc(&pdev->dev, sizeof(struct max8925_power_pdata), GFP_KERNEL); + if (!pdata) + goto ret; of_property_read_u32(np, "topoff-threshold", &topoff_threshold); of_property_read_u32(np, "batt-detect", &batt_detect); of_property_read_u32(np, "fast-charge", &fast_charge); of_property_read_u32(np, "no-insert-detect", &no_insert_detect); of_property_read_u32(np, "no-temp-support", &no_temp_support); - of_node_put(np); pdata->batt_detect = batt_detect; pdata->fast_charge = fast_charge; @@ -466,6 +467,8 @@ max8925_power_dt_init(struct platform_device *pdev) pdata->no_insert_detect = no_insert_detect; pdata->no_temp_support = no_temp_support; +ret: + of_node_put(np); return pdata; } #else |