2015-11-12 07:42:29

by Corentin Labbe

[permalink] [raw]
Subject: [PATCH] pwm: sun4i: fix a possible NULL dereference

of_match_device could return NULL, and so cause a NULL pointer
dereference later.

Reported-by: coverity (CID 1324139)
Signed-off-by: LABBE Corentin <[email protected]>
---
drivers/pwm/pwm-sun4i.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
index cd9dde5..3011fcc 100644
--- a/drivers/pwm/pwm-sun4i.c
+++ b/drivers/pwm/pwm-sun4i.c
@@ -291,6 +291,8 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
const struct of_device_id *match;

match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);
+ if (!match)
+ return -ENODEV;

pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL);
if (!pwm)
--
2.4.10


2015-11-12 12:38:33

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] pwm: sun4i: fix a possible NULL dereference

On Thu, Nov 12, 2015 at 08:42:12AM +0100, LABBE Corentin wrote:
> of_match_device could return NULL, and so cause a NULL pointer
> dereference later.
>
> Reported-by: coverity (CID 1324139)
> Signed-off-by: LABBE Corentin <[email protected]>
> ---
> drivers/pwm/pwm-sun4i.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
> index cd9dde5..3011fcc 100644
> --- a/drivers/pwm/pwm-sun4i.c
> +++ b/drivers/pwm/pwm-sun4i.c
> @@ -291,6 +291,8 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
> const struct of_device_id *match;
>
> match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);
> + if (!match)
> + return -ENODEV;

I explained this in a reply to another similar patch, but that was a
different audience, so here goes again: the driver core will use the
same device ID table to match on the driver, so the case where NULL
would be returned is the same case in which sun4i_pwm_probe() would
never have been called in the first place.

Thierry


Attachments:
(No filename) (1.01 kB)
signature.asc (819.00 B)
Download all attachments

2015-11-12 14:47:06

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH] pwm: sun4i: fix a possible NULL dereference

Hi,

On 12/11/2015 at 08:42:12 +0100, LABBE Corentin wrote :
> of_match_device could return NULL, and so cause a NULL pointer
> dereference later.
>
> Reported-by: coverity (CID 1324139)
> Signed-off-by: LABBE Corentin <[email protected]>
> ---
> drivers/pwm/pwm-sun4i.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
> index cd9dde5..3011fcc 100644
> --- a/drivers/pwm/pwm-sun4i.c
> +++ b/drivers/pwm/pwm-sun4i.c
> @@ -291,6 +291,8 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
> const struct of_device_id *match;
>
> match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);
> + if (!match)
> + return -ENODEV;
>

This will never happen. If it is not matching, then sun4i_pwm_probe is
not called.


--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com