diff mbox

drm: fb: cma: fix memory leak

Message ID 1465743836-6228-1-git-send-email-sudipm.mukherjee@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sudip Mukherjee June 12, 2016, 3:03 p.m. UTC
We may have a situation that the memory allocation for fbdefio fails
and then the allocation for fbops may succeed as some memory has been
freed somewhere. Lets free fbops also to face these rare situtation.
Since kfree can handle arguments as NULL, there should not be any
problem in calling both the kfree().

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
---
 drivers/gpu/drm/drm_fb_cma_helper.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Daniel Vetter June 13, 2016, 7:52 a.m. UTC | #1
On Sun, Jun 12, 2016 at 04:03:56PM +0100, Sudip Mukherjee wrote:
> We may have a situation that the memory allocation for fbdefio fails
> and then the allocation for fbops may succeed as some memory has been
> freed somewhere. Lets free fbops also to face these rare situtation.
> Since kfree can handle arguments as NULL, there should not be any
> problem in calling both the kfree().
> 
> Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>

Thanks for the patch, applied to drm-misc. For next time around please
figure out which patch created the broken using git blame. Then cite
that in your commit message and cc the author/reviewers of the broken
commit when submitting your fix.
-Daniel

> ---
>  drivers/gpu/drm/drm_fb_cma_helper.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> index 2e7ef0b..c0b0c71 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -346,6 +346,7 @@ static int drm_fbdev_cma_defio_init(struct fb_info *fbi,
>  	fbops = kzalloc(sizeof(*fbops), GFP_KERNEL);
>  	if (!fbdefio || !fbops) {
>  		kfree(fbdefio);
> +		kfree(fbops);
>  		return -ENOMEM;
>  	}
>  
> -- 
> 1.9.1
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index 2e7ef0b..c0b0c71 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -346,6 +346,7 @@  static int drm_fbdev_cma_defio_init(struct fb_info *fbi,
 	fbops = kzalloc(sizeof(*fbops), GFP_KERNEL);
 	if (!fbdefio || !fbops) {
 		kfree(fbdefio);
+		kfree(fbops);
 		return -ENOMEM;
 	}