File edid_data_sanity_check.diff of Package xorg-x11-server

Index: xorg-server-1.6.3.901/hw/xfree86/modes/xf86Crtc.c
================================================================================
--- xorg-server-1.7.99/hw/xfree86/modes/xf86Crtc.c
+++ xorg-server-1.7.99/hw/xfree86/modes/xf86Crtc.c
@@ -2916,8 +2916,14 @@
                              p->output->MonInfo->features.vsize);
     if (det_mon->type == DT &&
         det_mon->section.d_timings.h_size != 0 &&
-        det_mon->section.d_timings.v_size != 0) {
-
+        det_mon->section.d_timings.v_size != 0 &&
+	det_mon->section.d_timings.v_size != 0 &&
+	/* some sanity checking for aspect ration */
+	((det_mon->section.d_timings.h_size /
+	  det_mon->section.d_timings.v_size) < 2) &&
+	((det_mon->section.d_timings.v_size /
+	  det_mon->section.d_timings.h_size) < 2)
+    ) {
         p->output->mm_width = det_mon->section.d_timings.h_size;
         p->output->mm_height = det_mon->section.d_timings.v_size;
         p->ret = TRUE;