OSDN Git Service

drm: fb: cma: fix memory leak
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Sun, 12 Jun 2016 15:03:56 +0000 (16:03 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 13 Jun 2016 07:53:09 +0000 (09:53 +0200)
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>
Fixes: 199c77179c87 ("drm/fb-cma-helper: Add fb_deferred_io support")
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1465743836-6228-1-git-send-email-sudipm.mukherjee@gmail.com
drivers/gpu/drm/drm_fb_cma_helper.c

index 2e7ef0b..c0b0c71 100644 (file)
@@ -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;
        }