Message ID | 1447314132-29458-1-git-send-email-clabbe.montjoie@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 <clabbe.montjoie@gmail.com> > --- > 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
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 <clabbe.montjoie@gmail.com> > --- > 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.
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)
of_match_device could return NULL, and so cause a NULL pointer dereference later. Reported-by: coverity (CID 1324139) Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com> --- drivers/pwm/pwm-sun4i.c | 2 ++ 1 file changed, 2 insertions(+)