Skip to contentSkip to conversation

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

PATCH Applied Gustavo A. R. Silva 3 participants 5 messages Jul 7, 2017 – Jul 17, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

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

---
 drivers/iio/adc/meson_saradc.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/iio/adc/meson_saradc.c +5 -0
index 83da50e..07dbcc3 100644
@@ -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;
Signature · 1 line
2.5.0
reviewer Acked-by on v1 1/1
#1 lore raw
Quoted 6 lines · Gustavo A. R. Silva

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

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:

Quoted 28 lines
---
 drivers/iio/adc/meson_saradc.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/iio/adc/meson_saradc.c +5 -1
index 83da50e..07dbcc3 100644
@@ -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 at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

maintainer Applied
#2 lore raw
Quoted 5 lines · On Sat, 8 Jul 2017 15:42:46 +0200 Martin Blumenstingl…
Quoted 3 lines · Gustavo A. R. Silva

Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

Quoted 8 lines
Quoted 3 lines

In case of NULL print error message and return -ENODEV

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:

Applied.

Jonathan

Quoted 34 lines
Quoted 26 lines

---
 drivers/iio/adc/meson_saradc.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/iio/adc/meson_saradc.c +5 -1
index 83da50e..07dbcc3 100644
@@ -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

Quoted 4 lines

_______________________________________________
linux-amlogic mailing list
linux-amlogic at 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 at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 10 lines · Jonathan Cameron
Quoted 7 lines · On Sat, 8 Jul 2017 15:42:46 +0200 Martin Blumenstingl…
Quoted 5 lines · Gustavo A. R. Silva

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

Quoted 8 lines
Quoted 6 lines
Quoted 1 line

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:

Applied.

Thank you, Jonathan.

Quoted 36 lines

Jonathan

Quoted 34 lines
Quoted 26 lines

---
 drivers/iio/adc/meson_saradc.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/iio/adc/meson_saradc.c +5 -1
index 83da50e..07dbcc3 100644
@@ -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

Quoted 4 lines

_______________________________________________
linux-amlogic mailing list
linux-amlogic at 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 at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 1 line
Gustavo A. R. Silva
#4 lore raw
In reply to Martin Blumenstingl

Hi Martin,

Quoting Martin Blumenstingl <[email protected]>:

Quoted 5 lines
Quoted 3 lines · Gustavo A. R. Silva

Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

Quoted 7 lines
Quoted 3 lines

In case of NULL print error message and return -ENODEV

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. :)

Quoted 28 lines
Quoted 25 lines
---
 drivers/iio/adc/meson_saradc.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/iio/adc/meson_saradc.c +5 -0
index 83da50e..07dbcc3 100644
@@ -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

Quoted 4 lines
Quoted 4 lines

_______________________________________________
linux-amlogic mailing list
linux-amlogic at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

--
Gustavo A. R. Silva