2016-12-13 08:21:19

by Arvind Yadav

[permalink] [raw]
Subject: [v1] video:fbdev:cobalt_lcdfb:- Handle return NULL error from devm_ioremap

Here, If devm_ioremap will fail. It will return NULL.
Kernel can run into a NULL-pointer dereference.
This error check will avoid NULL pointer dereference.

Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/video/fbdev/cobalt_lcdfb.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
index 2d3b691..038ac69 100644
--- a/drivers/video/fbdev/cobalt_lcdfb.c
+++ b/drivers/video/fbdev/cobalt_lcdfb.c
@@ -308,6 +308,11 @@ static int cobalt_lcdfb_probe(struct platform_device *dev)
info->screen_size = resource_size(res);
info->screen_base = devm_ioremap(&dev->dev, res->start,
info->screen_size);
+ if (!info->screen_base) {
+ framebuffer_release(info);
+ return -ENOMEM;
+ }
+
info->fbops = &cobalt_lcd_fbops;
info->fix = cobalt_lcdfb_fix;
info->fix.smem_start = res->start;
--
2.7.4


2016-12-14 02:23:22

by Yoichi Yuasa

[permalink] [raw]
Subject: Re: [v1] video:fbdev:cobalt_lcdfb:- Handle return NULL error from devm_ioremap

Hi Arvind,

Thank you for fixing it.

Acked-by: Yoichi Yuasa <[email protected]>

2016-12-13 17:20 GMT+09:00 Arvind Yadav <[email protected]>:
> Here, If devm_ioremap will fail. It will return NULL.
> Kernel can run into a NULL-pointer dereference.
> This error check will avoid NULL pointer dereference.
>
> Signed-off-by: Arvind Yadav <[email protected]>
> ---
> drivers/video/fbdev/cobalt_lcdfb.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
> index 2d3b691..038ac69 100644
> --- a/drivers/video/fbdev/cobalt_lcdfb.c
> +++ b/drivers/video/fbdev/cobalt_lcdfb.c
> @@ -308,6 +308,11 @@ static int cobalt_lcdfb_probe(struct platform_device *dev)
> info->screen_size = resource_size(res);
> info->screen_base = devm_ioremap(&dev->dev, res->start,
> info->screen_size);
> + if (!info->screen_base) {
> + framebuffer_release(info);
> + return -ENOMEM;
> + }
> +
> info->fbops = &cobalt_lcd_fbops;
> info->fix = cobalt_lcdfb_fix;
> info->fix.smem_start = res->start;
> --
> 2.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html