diff options
author | Axel Lin <axel.lin@ingics.com> | 2013-05-16 17:31:00 +0800 |
---|---|---|
committer | Anton Vorontsov <anton@enomsg.org> | 2013-06-06 17:25:27 -0700 |
commit | df311333a8c13f3ffe2537a4ff507887208cb863 (patch) | |
tree | 3d52e87564f8537623d465f52c6d632ee949746b /drivers/power | |
parent | 17b4565b308ed31fa20b59842c75e685a101dc8a (diff) | |
download | linux-df311333a8c13f3ffe2537a4ff507887208cb863.tar.bz2 |
pm2301_charger: Fix NULL pointer dereference
Add checking pl_data in probe, this prevent possible NULL pointer
dereference. Also fix NULL pointer deference in dev_err when allocate
memory for pm2 fails.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Anton Vorontsov <anton@enomsg.org>
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/pm2301_charger.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/power/pm2301_charger.c b/drivers/power/pm2301_charger.c index fef56e2041b3..bb346becd7b4 100644 --- a/drivers/power/pm2301_charger.c +++ b/drivers/power/pm2301_charger.c @@ -1007,9 +1007,14 @@ static int pm2xxx_wall_charger_probe(struct i2c_client *i2c_client, u8 val; int i; + if (!pl_data) { + dev_err(&i2c_client->dev, "No platform data supplied\n"); + return -EINVAL; + } + pm2 = kzalloc(sizeof(struct pm2xxx_charger), GFP_KERNEL); if (!pm2) { - dev_err(pm2->dev, "pm2xxx_charger allocation failed\n"); + dev_err(&i2c_client->dev, "pm2xxx_charger allocation failed\n"); return -ENOMEM; } |