fpga: altera-hps2fpga: add NULL check on of_match_device() return value
diff mbox

Message ID 20170707062214.GA16142@embeddedgus
State Accepted
Headers show

Commit Message

Gustavo A. R. Silva July 7, 2017, 6:22 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/fpga/altera-hps2fpga.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Alan Tull July 10, 2017, 3:17 p.m. UTC | #1
On Fri, Jul 7, 2017 at 1:22 AM, Gustavo A. R. Silva

Hi Gustavo,

Thanks for the fix!

Alan

<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>

Acked-by: Alan Tull <atull@kernel.org>

> ---
>  drivers/fpga/altera-hps2fpga.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/fpga/altera-hps2fpga.c b/drivers/fpga/altera-hps2fpga.c
> index 3066b80..ca8212c 100644
> --- a/drivers/fpga/altera-hps2fpga.c
> +++ b/drivers/fpga/altera-hps2fpga.c
> @@ -143,6 +143,11 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
>         int ret;
>
>         of_id = of_match_device(altera_fpga_of_match, dev);
> +       if (!of_id) {
> +               dev_err(dev, "failed to match device\n");
> +               return -ENODEV;
> +       }
> +
>         priv = (struct altera_hps2fpga_data *)of_id->data;
>
>         priv->bridge_reset = of_reset_control_get_by_index(dev->of_node, 0);
> --
> 2.5.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-fpga" 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, 3:25 p.m. UTC | #2
Hi Alan,

Quoting Alan Tull <atull@kernel.org>:

> On Fri, Jul 7, 2017 at 1:22 AM, Gustavo A. R. Silva
>
> Hi Gustavo,
>
> Thanks for the fix!
>

Absolutely, glad to help. :)

> Alan
>
> <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>
>
> Acked-by: Alan Tull <atull@kernel.org>
>
>> ---
>>  drivers/fpga/altera-hps2fpga.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/fpga/altera-hps2fpga.c b/drivers/fpga/altera-hps2fpga.c
>> index 3066b80..ca8212c 100644
>> --- a/drivers/fpga/altera-hps2fpga.c
>> +++ b/drivers/fpga/altera-hps2fpga.c
>> @@ -143,6 +143,11 @@ static int alt_fpga_bridge_probe(struct  
>> platform_device *pdev)
>>         int ret;
>>
>>         of_id = of_match_device(altera_fpga_of_match, dev);
>> +       if (!of_id) {
>> +               dev_err(dev, "failed to match device\n");
>> +               return -ENODEV;
>> +       }
>> +
>>         priv = (struct altera_hps2fpga_data *)of_id->data;
>>
>>         priv->bridge_reset = of_reset_control_get_by_index(dev->of_node, 0);
>> --
>> 2.5.0
>>
--
Gustavo A. R. Silva






--
To unsubscribe from this list: send the line "unsubscribe linux-fpga" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Moritz Fischer July 10, 2017, 4:25 p.m. UTC | #3
On Thu, Jul 6, 2017 at 11:22 PM, 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>
Reviewed-by: Moritz Fischer <mdf@kernel.org>
> ---
>  drivers/fpga/altera-hps2fpga.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/fpga/altera-hps2fpga.c b/drivers/fpga/altera-hps2fpga.c
> index 3066b80..ca8212c 100644
> --- a/drivers/fpga/altera-hps2fpga.c
> +++ b/drivers/fpga/altera-hps2fpga.c
> @@ -143,6 +143,11 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
>         int ret;
>
>         of_id = of_match_device(altera_fpga_of_match, dev);
> +       if (!of_id) {
> +               dev_err(dev, "failed to match device\n");
> +               return -ENODEV;
> +       }
> +
>         priv = (struct altera_hps2fpga_data *)of_id->data;
>
>         priv->bridge_reset = of_reset_control_get_by_index(dev->of_node, 0);
> --
> 2.5.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-fpga" 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 17, 2017, 4:58 a.m. UTC | #4
On 07/10/2017 11:25 AM, Moritz Fischer wrote:
> On Thu, Jul 6, 2017 at 11:22 PM, 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>
> Reviewed-by: Moritz Fischer <mdf@kernel.org>

Thank you, Moritz.

>> ---
>>  drivers/fpga/altera-hps2fpga.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/fpga/altera-hps2fpga.c b/drivers/fpga/altera-hps2fpga.c
>> index 3066b80..ca8212c 100644
>> --- a/drivers/fpga/altera-hps2fpga.c
>> +++ b/drivers/fpga/altera-hps2fpga.c
>> @@ -143,6 +143,11 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
>>         int ret;
>>
>>         of_id = of_match_device(altera_fpga_of_match, dev);
>> +       if (!of_id) {
>> +               dev_err(dev, "failed to match device\n");
>> +               return -ENODEV;
>> +       }
>> +
>>         priv = (struct altera_hps2fpga_data *)of_id->data;
>>
>>         priv->bridge_reset = of_reset_control_get_by_index(dev->of_node, 0);
>> --
>> 2.5.0
>>

Patch
diff mbox

diff --git a/drivers/fpga/altera-hps2fpga.c b/drivers/fpga/altera-hps2fpga.c
index 3066b80..ca8212c 100644
--- a/drivers/fpga/altera-hps2fpga.c
+++ b/drivers/fpga/altera-hps2fpga.c
@@ -143,6 +143,11 @@  static int alt_fpga_bridge_probe(struct platform_device *pdev)
 	int ret;
 
 	of_id = of_match_device(altera_fpga_of_match, dev);
+	if (!of_id) {
+		dev_err(dev, "failed to match device\n");
+		return -ENODEV;
+	}
+
 	priv = (struct altera_hps2fpga_data *)of_id->data;
 
 	priv->bridge_reset = of_reset_control_get_by_index(dev->of_node, 0);