2019-03-09 08:05:43

by Kangjie Lu

[permalink] [raw]
Subject: [PATCH] mfd: fix a potential NULL pointer dereference

In case devm_kzalloc fails, the fix does NULL check and returns
-ENOMEM upon failure so as to avoid NULL pointer dereference.

Signed-off-by: Kangjie Lu <[email protected]>
---
drivers/mfd/sm501.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
index a530972c5a7e..e0173bf4b0dc 100644
--- a/drivers/mfd/sm501.c
+++ b/drivers/mfd/sm501.c
@@ -1145,6 +1145,9 @@ static int sm501_register_gpio_i2c_instance(struct sm501_devdata *sm,
lookup = devm_kzalloc(&pdev->dev,
sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup),
GFP_KERNEL);
+ if (!lookup)
+ return -ENOMEM;
+
lookup->dev_id = "i2c-gpio";
if (iic->pin_sda < 32)
lookup->table[0].chip_label = "SM501-LOW";
--
2.17.1



2019-03-23 03:12:00

by Kangjie Lu

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a potential NULL pointer dereference

Hi Lee Jones,

Can you review this patch?

Thanks.

> On Mar 9, 2019, at 2:04 AM, Kangjie Lu <[email protected]> wrote:
>
> In case devm_kzalloc fails, the fix does NULL check and returns
> -ENOMEM upon failure so as to avoid NULL pointer dereference.
>
> Signed-off-by: Kangjie Lu <[email protected]>
> ---
> drivers/mfd/sm501.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
> index a530972c5a7e..e0173bf4b0dc 100644
> --- a/drivers/mfd/sm501.c
> +++ b/drivers/mfd/sm501.c
> @@ -1145,6 +1145,9 @@ static int sm501_register_gpio_i2c_instance(struct sm501_devdata *sm,
> lookup = devm_kzalloc(&pdev->dev,
> sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup),
> GFP_KERNEL);
> + if (!lookup)
> + return -ENOMEM;
> +
> lookup->dev_id = "i2c-gpio";
> if (iic->pin_sda < 32)
> lookup->table[0].chip_label = "SM501-LOW";
> --
> 2.17.1
>


2019-03-25 07:58:37

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a potential NULL pointer dereference

On Fri, 22 Mar 2019, Kangjie Lu wrote:

> Hi Lee Jones,
>
> Can you review this patch?

Don't poke.

I have a very long list of reviews on my TODO. Poking only surfaces
your patch to the top of my Inbox, and since I review patches in
reverse chronological order, it puts the review to the back of the
queue.

> > On Mar 9, 2019, at 2:04 AM, Kangjie Lu <[email protected]> wrote:
> >
> > In case devm_kzalloc fails, the fix does NULL check and returns
> > -ENOMEM upon failure so as to avoid NULL pointer dereference.
> >
> > Signed-off-by: Kangjie Lu <[email protected]>
> > ---
> > drivers/mfd/sm501.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
> > index a530972c5a7e..e0173bf4b0dc 100644
> > --- a/drivers/mfd/sm501.c
> > +++ b/drivers/mfd/sm501.c
> > @@ -1145,6 +1145,9 @@ static int sm501_register_gpio_i2c_instance(struct sm501_devdata *sm,
> > lookup = devm_kzalloc(&pdev->dev,
> > sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup),
> > GFP_KERNEL);
> > + if (!lookup)
> > + return -ENOMEM;
> > +
> > lookup->dev_id = "i2c-gpio";
> > if (iic->pin_sda < 32)
> > lookup->table[0].chip_label = "SM501-LOW";
>

--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

2019-03-25 09:15:01

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a potential NULL pointer dereference

On 3/25/2019 1:26 PM, Lee Jones wrote:
> On Fri, 22 Mar 2019, Kangjie Lu wrote:
>
>> Hi Lee Jones,
>>
>> Can you review this patch?
> Don't poke.
>
> I have a very long list of reviews on my TODO. Poking only surfaces
> your patch to the top of my Inbox, and since I review patches in
> reverse chronological order, it puts the review to the back of the
> queue.
>
>>> On Mar 9, 2019, at 2:04 AM, Kangjie Lu <[email protected]> wrote:
>>>
>>> In case devm_kzalloc fails, the fix does NULL check and returns
>>> -ENOMEM upon failure so as to avoid NULL pointer dereference.
>>>
>>> Signed-off-by: Kangjie Lu <[email protected]>
>>> ---
>>> drivers/mfd/sm501.c | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
>>> index a530972c5a7e..e0173bf4b0dc 100644
>>> --- a/drivers/mfd/sm501.c
>>> +++ b/drivers/mfd/sm501.c
>>> @@ -1145,6 +1145,9 @@ static int sm501_register_gpio_i2c_instance(struct sm501_devdata *sm,
>>> lookup = devm_kzalloc(&pdev->dev,
>>> sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup),
>>> GFP_KERNEL);
>>> + if (!lookup)
>>> + return -ENOMEM;

Seems you are using quite old codebase.
This patch is already there ..

https://elixir.bootlin.com/linux/v5.1-rc2/source/drivers/mfd/sm501.c#L1147

commit ae7b8eda27b3( mfd: sm501: Fix potential NULL pointer dereference )


Thanks,
Mukesh


>>> +
>>> lookup->dev_id = "i2c-gpio";
>>> if (iic->pin_sda < 32)
>>> lookup->table[0].chip_label = "SM501-LOW";

2019-04-02 08:52:03

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a potential NULL pointer dereference

On Mon, 25 Mar 2019, Mukesh Ojha wrote:

> On 3/25/2019 1:26 PM, Lee Jones wrote:
> > On Fri, 22 Mar 2019, Kangjie Lu wrote:
> >
> > > Hi Lee Jones,
> > >
> > > Can you review this patch?
> > Don't poke.
> >
> > I have a very long list of reviews on my TODO. Poking only surfaces
> > your patch to the top of my Inbox, and since I review patches in
> > reverse chronological order, it puts the review to the back of the
> > queue.
> >
> > > > On Mar 9, 2019, at 2:04 AM, Kangjie Lu <[email protected]> wrote:
> > > >
> > > > In case devm_kzalloc fails, the fix does NULL check and returns
> > > > -ENOMEM upon failure so as to avoid NULL pointer dereference.
> > > >
> > > > Signed-off-by: Kangjie Lu <[email protected]>
> > > > ---
> > > > drivers/mfd/sm501.c | 3 +++
> > > > 1 file changed, 3 insertions(+)
> > > >
> > > > diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
> > > > index a530972c5a7e..e0173bf4b0dc 100644
> > > > --- a/drivers/mfd/sm501.c
> > > > +++ b/drivers/mfd/sm501.c
> > > > @@ -1145,6 +1145,9 @@ static int sm501_register_gpio_i2c_instance(struct sm501_devdata *sm,
> > > > lookup = devm_kzalloc(&pdev->dev,
> > > > sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup),
> > > > GFP_KERNEL);
> > > > + if (!lookup)
> > > > + return -ENOMEM;
>
> Seems you are using quite old codebase.
> This patch is already there ..
>
> https://elixir.bootlin.com/linux/v5.1-rc2/source/drivers/mfd/sm501.c#L1147
>
> commit ae7b8eda27b3( mfd: sm501: Fix potential NULL pointer dereference )

Confirmed. Dropping this one.

--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog