Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1463802 > unrolled thread

[PATCH] gpu: ipu-v3: fix a possible NULL dereference

Started byLABBE Corentin <clabbe.montjoie@gmail.com>
First post2016-08-16 15:40 +0200
Last post2016-08-23 18:50 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] gpu: ipu-v3: fix a possible NULL dereference LABBE Corentin <clabbe.montjoie@gmail.com> - 2016-08-16 15:40 +0200
    Re: [PATCH] gpu: ipu-v3: fix a possible NULL dereference Sean Paul <seanpaul@chromium.org> - 2016-08-23 17:30 +0200
      Re: [PATCH] gpu: ipu-v3: fix a possible NULL dereference Corentin LABBE <clabbe.montjoie@gmail.com> - 2016-08-23 18:50 +0200

#1463802 — [PATCH] gpu: ipu-v3: fix a possible NULL dereference

FromLABBE Corentin <clabbe.montjoie@gmail.com>
Date2016-08-16 15:40 +0200
Subject[PATCH] gpu: ipu-v3: fix a possible NULL dereference
Message-ID<s6ML1-3GS-61@gated-at.bofh.it>
of_match_device could return NULL, and so cause a NULL pointer
dereference later.

For fixing this problem, we use of_device_get_match_data(), this will
simplify the code a little by using a standard function for
getting the match data.

Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
---
 drivers/gpu/ipu-v3/ipu-common.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
index 99dcacf..05a9cc6 100644
--- a/drivers/gpu/ipu-v3/ipu-common.c
+++ b/drivers/gpu/ipu-v3/ipu-common.c
@@ -1207,15 +1207,13 @@ EXPORT_SYMBOL_GPL(ipu_dump);
 
 static int ipu_probe(struct platform_device *pdev)
 {
-	const struct of_device_id *of_id =
-			of_match_device(imx_ipu_dt_ids, &pdev->dev);
 	struct ipu_soc *ipu;
 	struct resource *res;
 	unsigned long ipu_base;
 	int i, ret, irq_sync, irq_err;
 	const struct ipu_devtype *devtype;
 
-	devtype = of_id->data;
+	devtype = of_device_get_match_data(&pdev->dev);
 
 	irq_sync = platform_get_irq(pdev, 0);
 	irq_err = platform_get_irq(pdev, 1);
-- 
2.7.3

[toc] | [next] | [standalone]


#1468644

FromSean Paul <seanpaul@chromium.org>
Date2016-08-23 17:30 +0200
Message-ID<s9lOi-5N9-31@gated-at.bofh.it>
In reply to#1463802
On Tue, Aug 16, 2016 at 9:33 AM, LABBE Corentin
<clabbe.montjoie@gmail.com> wrote:
> of_match_device could return NULL, and so cause a NULL pointer
> dereference later.
>
> For fixing this problem, we use of_device_get_match_data(), this will
> simplify the code a little by using a standard function for
> getting the match data.
>
> Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
> ---
>  drivers/gpu/ipu-v3/ipu-common.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
> index 99dcacf..05a9cc6 100644
> --- a/drivers/gpu/ipu-v3/ipu-common.c
> +++ b/drivers/gpu/ipu-v3/ipu-common.c
> @@ -1207,15 +1207,13 @@ EXPORT_SYMBOL_GPL(ipu_dump);
>
>  static int ipu_probe(struct platform_device *pdev)
>  {
> -       const struct of_device_id *of_id =
> -                       of_match_device(imx_ipu_dt_ids, &pdev->dev);
>         struct ipu_soc *ipu;
>         struct resource *res;
>         unsigned long ipu_base;
>         int i, ret, irq_sync, irq_err;
>         const struct ipu_devtype *devtype;
>
> -       devtype = of_id->data;
> +       devtype = of_device_get_match_data(&pdev->dev);

While you avoid the of_id dereference, it's possible that
of_device_get_match_data() returns NULL, so you're really just moving
the oops around.

Sean

>
>         irq_sync = platform_get_irq(pdev, 0);
>         irq_err = platform_get_irq(pdev, 1);
> --
> 2.7.3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

[toc] | [prev] | [next] | [standalone]


#1468706

FromCorentin LABBE <clabbe.montjoie@gmail.com>
Date2016-08-23 18:50 +0200
Message-ID<s9n3I-6xg-25@gated-at.bofh.it>
In reply to#1468644
On 23/08/2016 17:24, Sean Paul wrote:
> On Tue, Aug 16, 2016 at 9:33 AM, LABBE Corentin
> <clabbe.montjoie@gmail.com> wrote:
>> of_match_device could return NULL, and so cause a NULL pointer
>> dereference later.
>>
>> For fixing this problem, we use of_device_get_match_data(), this will
>> simplify the code a little by using a standard function for
>> getting the match data.
>>
>> Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
>> ---
>>  drivers/gpu/ipu-v3/ipu-common.c | 4 +---
>>  1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
>> index 99dcacf..05a9cc6 100644
>> --- a/drivers/gpu/ipu-v3/ipu-common.c
>> +++ b/drivers/gpu/ipu-v3/ipu-common.c
>> @@ -1207,15 +1207,13 @@ EXPORT_SYMBOL_GPL(ipu_dump);
>>
>>  static int ipu_probe(struct platform_device *pdev)
>>  {
>> -       const struct of_device_id *of_id =
>> -                       of_match_device(imx_ipu_dt_ids, &pdev->dev);
>>         struct ipu_soc *ipu;
>>         struct resource *res;
>>         unsigned long ipu_base;
>>         int i, ret, irq_sync, irq_err;
>>         const struct ipu_devtype *devtype;
>>
>> -       devtype = of_id->data;
>> +       devtype = of_device_get_match_data(&pdev->dev);
> 
> While you avoid the of_id dereference, it's possible that
> of_device_get_match_data() returns NULL, so you're really just moving
> the oops around.
> 
> Sean
> 

Hello

I apologize for didnt seen that, I will send an updated patch which fix that.

Regards

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web