kcalloc returns NULL on failure. Hence check for the return value
and exit on error to avoid NULL pointer dereference.

Fixes the following smatch errors:
drivers/gpu/drm/drm_fb_helper.c:1271 drm_setup_crtcs() error:
potential null dereference 'modes'.  (kcalloc returns null)
drivers/gpu/drm/drm_fb_helper.c:1272 drm_setup_crtcs() error:
potential null dereference 'crtcs'.  (kcalloc returns null)

Signed-off-by: Sachin Kamat <sachin.kamat at linaro.org>
---
Dependent on the following patch series:
http://comments.gmane.org/gmane.comp.video.dri.devel/76605
---
 drivers/gpu/drm/drm_fb_helper.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 8c2de02..fc67cc5 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1251,6 +1251,11 @@ static void drm_setup_crtcs(struct drm_fb_helper 
*fb_helper)
                        sizeof(struct drm_display_mode *), GFP_KERNEL);
        enabled = kcalloc(dev->mode_config.num_connector,
                          sizeof(bool), GFP_KERNEL);
+       if (!crtcs || !modes || !enabled) {
+               DRM_ERROR("Memory allocation failed\n");
+               goto out;
+       }
+

        drm_enable_connectors(fb_helper, enabled);

@@ -1289,6 +1294,7 @@ static void drm_setup_crtcs(struct drm_fb_helper 
*fb_helper)
                }
        }

+out:
        kfree(crtcs);
        kfree(modes);
        kfree(enabled);
-- 
1.7.4.1

Reply via email to