2013-09-21 01:25:53

by Valentin Ilie

[permalink] [raw]
Subject: Null pointer deference in drivers/power/pm2301_charger.c

Hello,

I am trying to solve a NULL pointer deference in
drivers/power/pm2301_charger.c (and to submit a trivial patch) but I
am not sure how to do it.

Line 958 - 961
pm2 = (struct pm2xxx_charger*)i2c_get_clientdata(pm2xxx_i2c_client);
if (!pm2) {
dev_err(pm2->dev, "no pm2xxx_charger data supplied\n");

Line 976 - 978
pm2 = (struct pm2xxx_charger*)i2c_get_clientdata(pm2xxx_i2c_client);
if (!pm2) {
dev_err(pm2->dev, "no pm2xxx_charger data supplied\n");

As it can be clearly seen, pm2 is used with NULL value in dev_err. The
question is, how to fix this? Should I delete the dev_err line or can
I use printk (to avoid the need of a dev) ?

Thank you,
Valentin


2013-09-21 03:21:19

by Mike Galbraith

[permalink] [raw]
Subject: Re: Null pointer deference in drivers/power/pm2301_charger.c

On Sat, 2013-09-21 at 04:25 +0300, Valentin Ilie wrote:
> Hello,
>
> I am trying to solve a NULL pointer deference in
> drivers/power/pm2301_charger.c (and to submit a trivial patch) but I
> am not sure how to do it.
>
> Line 958 - 961
> pm2 = (struct pm2xxx_charger*)i2c_get_clientdata(pm2xxx_i2c_client);
> if (!pm2) {
> dev_err(pm2->dev, "no pm2xxx_charger data supplied\n");
>
> Line 976 - 978
> pm2 = (struct pm2xxx_charger*)i2c_get_clientdata(pm2xxx_i2c_client);
> if (!pm2) {
> dev_err(pm2->dev, "no pm2xxx_charger data supplied\n");
>
> As it can be clearly seen, pm2 is used with NULL value in dev_err. The
> question is, how to fix this? Should I delete the dev_err line or can
> I use printk (to avoid the need of a dev) ?

Looking below that, seems they perhaps meant &pm2xxx_i2c_client->dev.

-Mike