diff mbox

iio: adc: meson-saradc: add NULL check on of_match_device() return value

Message ID 20170707064630.GA21945@embeddedgus (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Gustavo A. R. Silva July 7, 2017, 6:46 a.m. UTC
Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

In case of NULL print error message and return -ENODEV

Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
 drivers/iio/adc/meson_saradc.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Martin Blumenstingl July 8, 2017, 1:42 p.m. UTC | #1
On Fri, Jul 7, 2017 at 8:46 AM, Gustavo A. R. Silva
<garsilva@embeddedor.com> wrote:
> Check return value from call to of_match_device()
> in order to prevent a NULL pointer dereference.
>
> In case of NULL print error message and return -ENODEV
>
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
thanks for finding this. a crash here is a rather theoretical problem
(since all compatible strings have their corresponding match data) -
but it doesn't hurt either, so:

Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>


> ---
>  drivers/iio/adc/meson_saradc.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
> index 83da50e..07dbcc3 100644
> --- a/drivers/iio/adc/meson_saradc.c
> +++ b/drivers/iio/adc/meson_saradc.c
> @@ -915,6 +915,11 @@ static int meson_sar_adc_probe(struct platform_device *pdev)
>         init_completion(&priv->done);
>
>         match = of_match_device(meson_sar_adc_of_match, &pdev->dev);
> +       if (!match) {
> +               dev_err(&pdev->dev, "failed to match device\n");
> +               return -ENODEV;
> +       }
> +
>         priv->data = match->data;
>
>         indio_dev->name = priv->data->name;
> --
> 2.5.0
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic
Jonathan Cameron July 9, 2017, 6:08 p.m. UTC | #2
On Sat, 8 Jul 2017 15:42:46 +0200
Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:

> On Fri, Jul 7, 2017 at 8:46 AM, Gustavo A. R. Silva
> <garsilva@embeddedor.com> wrote:
> > Check return value from call to of_match_device()
> > in order to prevent a NULL pointer dereference.
> >
> > In case of NULL print error message and return -ENODEV
> >
> > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>  
> thanks for finding this. a crash here is a rather theoretical problem
> (since all compatible strings have their corresponding match data) -
> but it doesn't hurt either, so:
> 
> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Applied.

Jonathan
> 
> 
> > ---
> >  drivers/iio/adc/meson_saradc.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
> > index 83da50e..07dbcc3 100644
> > --- a/drivers/iio/adc/meson_saradc.c
> > +++ b/drivers/iio/adc/meson_saradc.c
> > @@ -915,6 +915,11 @@ static int meson_sar_adc_probe(struct platform_device *pdev)
> >         init_completion(&priv->done);
> >
> >         match = of_match_device(meson_sar_adc_of_match, &pdev->dev);
> > +       if (!match) {
> > +               dev_err(&pdev->dev, "failed to match device\n");
> > +               return -ENODEV;
> > +       }
> > +
> >         priv->data = match->data;
> >
> >         indio_dev->name = priv->data->name;
> > --
> > 2.5.0
> >
> >
> > _______________________________________________
> > linux-amlogic mailing list
> > linux-amlogic@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-amlogic  
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gustavo A. R. Silva July 10, 2017, 7:40 p.m. UTC | #3
Hi Martin,

Quoting Martin Blumenstingl <martin.blumenstingl@googlemail.com>:

> On Fri, Jul 7, 2017 at 8:46 AM, Gustavo A. R. Silva
> <garsilva@embeddedor.com> wrote:
>> Check return value from call to of_match_device()
>> in order to prevent a NULL pointer dereference.
>>
>> In case of NULL print error message and return -ENODEV
>>
>> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
> thanks for finding this. a crash here is a rather theoretical problem
> (since all compatible strings have their corresponding match data) -
> but it doesn't hurt either, so:
>

I get it, glad to help. :)

> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>
>
>> ---
>>  drivers/iio/adc/meson_saradc.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
>> index 83da50e..07dbcc3 100644
>> --- a/drivers/iio/adc/meson_saradc.c
>> +++ b/drivers/iio/adc/meson_saradc.c
>> @@ -915,6 +915,11 @@ static int meson_sar_adc_probe(struct  
>> platform_device *pdev)
>>         init_completion(&priv->done);
>>
>>         match = of_match_device(meson_sar_adc_of_match, &pdev->dev);
>> +       if (!match) {
>> +               dev_err(&pdev->dev, "failed to match device\n");
>> +               return -ENODEV;
>> +       }
>> +
>>         priv->data = match->data;
>>
>>         indio_dev->name = priv->data->name;
>> --
>> 2.5.0
>>
>>
>> _______________________________________________
>> linux-amlogic mailing list
>> linux-amlogic@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-amlogic

--
Gustavo A. R. Silva
Gustavo A. R. Silva July 17, 2017, 4:55 a.m. UTC | #4
On 07/09/2017 01:08 PM, Jonathan Cameron wrote:
> On Sat, 8 Jul 2017 15:42:46 +0200
> Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:
>
>> On Fri, Jul 7, 2017 at 8:46 AM, Gustavo A. R. Silva
>> <garsilva@embeddedor.com> wrote:
>>> Check return value from call to of_match_device()
>>> in order to prevent a NULL pointer dereference.
>>>
>>> In case of NULL print error message and return -ENODEV
>>>
>>> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
>> thanks for finding this. a crash here is a rather theoretical problem
>> (since all compatible strings have their corresponding match data) -
>> but it doesn't hurt either, so:
>>
>> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> Applied.
>

Thank you, Jonathan.

> Jonathan
>>
>>
>>> ---
>>>  drivers/iio/adc/meson_saradc.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
>>> index 83da50e..07dbcc3 100644
>>> --- a/drivers/iio/adc/meson_saradc.c
>>> +++ b/drivers/iio/adc/meson_saradc.c
>>> @@ -915,6 +915,11 @@ static int meson_sar_adc_probe(struct platform_device *pdev)
>>>         init_completion(&priv->done);
>>>
>>>         match = of_match_device(meson_sar_adc_of_match, &pdev->dev);
>>> +       if (!match) {
>>> +               dev_err(&pdev->dev, "failed to match device\n");
>>> +               return -ENODEV;
>>> +       }
>>> +
>>>         priv->data = match->data;
>>>
>>>         indio_dev->name = priv->data->name;
>>> --
>>> 2.5.0
>>>
>>>
>>> _______________________________________________
>>> linux-amlogic mailing list
>>> linux-amlogic@lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-amlogic
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
diff mbox

Patch

diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
index 83da50e..07dbcc3 100644
--- a/drivers/iio/adc/meson_saradc.c
+++ b/drivers/iio/adc/meson_saradc.c
@@ -915,6 +915,11 @@  static int meson_sar_adc_probe(struct platform_device *pdev)
 	init_completion(&priv->done);
 
 	match = of_match_device(meson_sar_adc_of_match, &pdev->dev);
+	if (!match) {
+		dev_err(&pdev->dev, "failed to match device\n");
+		return -ENODEV;
+	}
+
 	priv->data = match->data;
 
 	indio_dev->name = priv->data->name;