disp: msm: dp: validate edid before dereferencing

Currently, when using custom edid from debugfs, the
extensions data inside the edid block is not validated
before dereferencing the extension block.

The fix adds a edid validation function to validate
any custom edids before accessing any members in the
edid block.

Change-Id: I8a2cc45477416a8f8c4cff882bd53d14012e29f4
Signed-off-by: Sudarsan Ramesh <sudarame@codeaurora.org>
这个提交包含在:
Sudarsan Ramesh
2020-11-03 17:52:12 -05:00
提交者 Gerrit - the friendly Code Review server
父节点 348e9b397c
当前提交 c6b636fe0b
修改 3 个文件,包含 24 行新增5 行删除

查看文件

@@ -157,7 +157,7 @@ static ssize_t dp_debug_write_edid(struct file *file,
edid = debug->edid;
bail:
kfree(buf);
debug->panel->set_edid(debug->panel, edid);
debug->panel->set_edid(debug->panel, edid, debug->edid_size);
/*
* print edid status as this code is executed
@@ -1617,7 +1617,7 @@ static void dp_debug_set_sim_mode(struct dp_debug_private *debug, bool sim)
debug->ctrl->set_sim_mode(debug->ctrl, false);
debug->dp_debug.sim_mode = false;
debug->panel->set_edid(debug->panel, 0);
debug->panel->set_edid(debug->panel, 0, 0);
if (debug->edid) {
devm_kfree(debug->dev, debug->edid);
debug->edid = NULL;