From d0a0f241442f97d3f3940d805406cf0adf94d725 Mon Sep 17 00:00:00 2001 From: Sandeep Panda Date: Thu, 28 Apr 2016 09:38:58 +0530 Subject: [PATCH] msm: mdss: fix NULL pointer dereferencing in DBA driver In DBA driver, after complete raw EDID data is parsed, the start address to audio block in EDID and its size is stored in corresponding bridge chip local variable, using a API implemented by the bridge chip driver. If the bridge chip driver does not implement the API to set audio block, then it will lead to crash if DBA driver tries to use the API. So fix the issue by checking for NULL pointer before calling the concerned API. Change-Id: Ia65e7a6dccadbd3fa4a8a8e779ff1f08bf34b5af Signed-off-by: Sandeep Panda --- drivers/video/fbdev/msm/mdss_dba_utils.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/msm/mdss_dba_utils.c b/drivers/video/fbdev/msm/mdss_dba_utils.c index fa78bd0166ea..76671b539aa7 100644 --- a/drivers/video/fbdev/msm/mdss_dba_utils.c +++ b/drivers/video/fbdev/msm/mdss_dba_utils.c @@ -323,7 +323,9 @@ static void mdss_dba_utils_dba_cb(void *data, enum msm_dba_callback_event event) if (!ret) { hdmi_edid_parser(udata->edid_data); hdmi_edid_get_audio_blk(udata->edid_data, &blk); - udata->ops.set_audio_block(udata->dba_data, + if (udata->ops.set_audio_block) + udata->ops.set_audio_block( + udata->dba_data, sizeof(blk), &blk); } else { pr_err("failed to get edid%d\n", ret);