diff options
| author | Sandeep Panda <spanda@codeaurora.org> | 2016-04-28 09:38:58 +0530 |
|---|---|---|
| committer | Harsh Sahu <hsahu@codeaurora.org> | 2016-11-11 12:12:18 -0800 |
| commit | d0a0f241442f97d3f3940d805406cf0adf94d725 (patch) | |
| tree | e53e4ecd3a3ed0c6155068e9ed638ba3d3f11ad0 /drivers/video/fbdev | |
| parent | 8f0b8a126c3f92368078954700779c8ab4c05b39 (diff) | |
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 <spanda@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dba_utils.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |
