1
0
xorg-x11-server/edit_data_sanity_check.diff

20 lines
967 B
Diff
Raw Normal View History

Index: xorg-server-1.6.3.901/hw/xfree86/modes/xf86Crtc.c
===================================================================
--- xorg-server-1.6.3.901.orig/hw/xfree86/modes/xf86Crtc.c
+++ xorg-server-1.6.3.901/hw/xfree86/modes/xf86Crtc.c
@@ -2800,7 +2800,13 @@ xf86OutputSetEDID (xf86OutputPtr output,
for (i = 0; i < 4; i++) {
if (edid_mon->det_mon[i].type == DT &&
edid_mon->det_mon[i].section.d_timings.h_size != 0 &&
- edid_mon->det_mon[i].section.d_timings.v_size != 0)
+ edid_mon->det_mon[i].section.d_timings.v_size != 0 &&
+ /* some sanity checking for aspect ration */
+ ((edid_mon->det_mon[i].section.d_timings.h_size /
+ edid_mon->det_mon[i].section.d_timings.v_size) < 2) &&
+ ((edid_mon->det_mon[i].section.d_timings.v_size /
+ edid_mon->det_mon[i].section.d_timings.h_size) < 2)
+ )
{
output->mm_width = edid_mon->det_mon[i].section.d_timings.h_size;
output->mm_height = edid_mon->det_mon[i].section.d_timings.v_size;