summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJayant Shekhar <jshekhar@codeaurora.org>2013-11-08 12:22:02 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:23:14 -0700
commit41c9a5d21b1d26ffc8d9302c92012629a82997ef (patch)
treeb4dcefae53e9bc8b70c0b72b0583cf887c0ce326
parent0e250c9859560b0ada261a309019ae9d8010ac39 (diff)
msm: mdss: Fix NULL pointer deference in mdss_mdp_overlay_handle_vsync
Add NULL pointer checks to avoid NULL pointer dereference resulting in kernel panic. CRs-Fixed: 573022 Change-Id: Ib7fd1bb75553441c1100a1c2d0cf1ae56108c125 Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_overlay.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
index 39f4bf88e202..4b9030774b22 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
@@ -1528,15 +1528,26 @@ pan_display_error:
static void mdss_mdp_overlay_handle_vsync(struct mdss_mdp_ctl *ctl,
ktime_t t)
{
- struct msm_fb_data_type *mfd = ctl->mfd;
- struct mdss_overlay_private *mdp5_data;
+ struct msm_fb_data_type *mfd = NULL;
+ struct mdss_overlay_private *mdp5_data = NULL;
+
+ if (!ctl) {
+ pr_err("ctl is NULL\n");
+ return;
+ }
+ mfd = ctl->mfd;
if (!mfd || !mfd->mdp.private1) {
pr_warn("Invalid handle for vsync\n");
return;
}
mdp5_data = mfd_to_mdp5_data(mfd);
+ if (!mdp5_data) {
+ pr_err("mdp5_data is NULL\n");
+ return;
+ }
+
pr_debug("vsync on fb%d play_cnt=%d\n", mfd->index, ctl->play_cnt);
mdp5_data->vsync_time = t;