OSDN Git Service

drm/edid: Check the number of detailed timing descriptors in the CEA ext block
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 24 Jan 2020 20:02:24 +0000 (22:02 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 14 Feb 2020 21:30:04 +0000 (23:30 +0200)
commit7304b9810a7367131dc26ced61696e7c98dd6666
tree41e3259c8a484005a34f49ce67d0b1bf07c7ed00
parent7f97d3e80649055350e072fbf00bfaed2706f7ec
drm/edid: Check the number of detailed timing descriptors in the CEA ext block

CEA-861 says :
"d = offset for the byte following the reserved data block.
 If no data is provided in the reserved data block, then d=4.
 If no DTDs are provided, then d=0."

So let's not look for DTDs when d==0. In fact let's just make that
<4 since those values would just mean that he DTDs overlap the block
header. And let's also check that d isn't so big as to declare
the descriptors to live past the block end, although the code
does already survive that case as we'd just end up with a negative
number of descriptors and the loop would not do anything.

Cc: Allen Chen <allen.chen@ite.com.tw>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200124200231.10517-1-ville.syrjala@linux.intel.com
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
drivers/gpu/drm/drm_edid.c