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

From: Lee Jones
Date: Wed May 28 2014 - 11:20:24 EST


On Wed, 28 May 2014, 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>
> ---
> Hello,
>
> This is only build tested, it would be good to get a comment
> from someone who is familiar with this code.
>
> Found using coccinelle.
>
> Best regards,
>
> Emil Goode
>
> 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..4859597 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 == 0)

I would prefer:

if (!vtg_val)

> goto set_voltage;
>
> ret = menelaus_read_reg(vtg->vtg_reg);

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
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/