Re: [PATCH v2] mfd: fix unintentional NULL check in menelaus_set_voltage()

From: Tony Lindgren
Date: Mon Jun 02 2014 - 11:44:35 EST


* Jingoo Han <jg1.han@xxxxxxxxxxx> [140528 18:45]:
> On Thursday, May 29, 2014 1:44 AM, Emil Goode wrote:
> >
> > The struct menelaus_vtg pointer vtg cannot be NULL here
> > so the condition is never true and if it ever was true
> > it would lead to a NULL pointer dereference when we goto
> > label set_voltage.
> >
> > Before the below patch was applied the code was:
> >
> > if (vtg == 0)
> >
> > The intention was to check if vtg_val is 0.
> >
> > commit 59a9f7a32adf6537b4e4db8ca204eeb77d7a634e
> > ("mfd: menelaus: Use NULL instead of 0")
> >
> > Signed-off-by: Emil Goode <emilgoode@xxxxxxxxx>
> > ---
> > v2: Changed (vtg_val == 0) to (!vtg_val)
> >
> > drivers/mfd/menelaus.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/mfd/menelaus.c b/drivers/mfd/menelaus.c
> > index ad25bfa..40df76a 100644
> > --- a/drivers/mfd/menelaus.c
> > +++ b/drivers/mfd/menelaus.c
> > @@ -466,7 +466,7 @@ static int menelaus_set_voltage(const struct menelaus_vtg *vtg, int mV,
> > struct i2c_client *c = the_menelaus->client;
> >
> > mutex_lock(&the_menelaus->lock);
> > - if (!vtg)
> > + if (!vtg_val)
> > goto set_voltage;
>
> (+cc Trilok Soni, Tony Lindgren)
>
> In this case, if 'vtg_val' is 0, setting voltage as 0 for
> registers such as MENELAUS_xxx_CTRLx will be skipped. So,
> it is not possible to set the voltage value as 0.
>
> Is it right? If not, how about just removing this check and
> the label 'set_voltage'?

Added Aaro and Jarkko to Cc.

Regards,

Tony

> Best regards,
> Jingoo Han
>
> >
> > ret = menelaus_read_reg(vtg->vtg_reg);
> > --
> > 1.7.10.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/