[PATCH] SIGSEGV: Silicon Motion Xvideo

Krzysztof Halasa khc at pm.waw.pl
Tue Jun 15 13:42:45 PDT 2010


Hi,

the SMI driver segfaults when I try to run mplayer -vo xv. I haven't
investigated too much, perhaps it's caused by the initial video window
being placed off screen. This is a really old Lynx 3DM (SM720 or
something), a virtual screen (with traditional mouse panning), single
CRTC output.

The following fixes the SIGSEGV, though I'm not sure if it's the optimal
fix. Not sure about possible corner cases either.

Obviously the driver segfaults because crtc is set to NULL in
xf86_crtc_clip_video_helper() called just before the assignments.

Fedora 13 driver, the same with current git version = 1.7.4.

--- xf86-video-siliconmotion-20100427/src/smi_video.c	2010-06-14 18:22:39.000000000 +0200
+++ xf86-video-siliconmotion-20100427/src/smi_video.c	2010-06-15 22:15:45.000000000 +0200
@@ -1522,10 +1522,12 @@
 	    LEAVE(Success);
 
 	/* Transform dstBox to the CRTC coordinates */
-	dstBox.x1 -= crtc->x;
-	dstBox.y1 -= crtc->y;
-	dstBox.x2 -= crtc->x;
-	dstBox.y2 -= crtc->y;
+	if (crtc) {
+		dstBox.x1 -= crtc->x;
+		dstBox.y1 -= crtc->y;
+		dstBox.x2 -= crtc->x;
+		dstBox.y2 -= crtc->y;
+	}
     }
 
     switch (id) {
-- 
Krzysztof Halasa



More information about the xorg mailing list