[jaunty] segfault during X startup with randr < 1.2 drivers
Bug #319210 reported by
knarf
This bug affects 5 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
X.Org X server |
Fix Released
|
High
|
|||
xorg-server (Ubuntu) |
Fix Released
|
High
|
Bryce Harrington |
Bug Description
X server crashes during X startup with non-rand 1.2 drivers. At least the following drivers are known to segfault:
- savage (see also bug #311544)
- r128 (see also bug #308485)
- intel (only on i81x hardware, see also bug #310075)
The discussion around this bug can be followed on the fd.o bugzilla posting.
The patch attached to this LP bug is a reworked version of Alex' patch which applies to the current version of xorg-xserver in Jaunty (xorg-server-
Related branches
description: | updated |
description: | updated |
description: | updated |
Changed in xorg-server: | |
status: | New → Confirmed |
Changed in xorg-server: | |
status: | Unknown → Confirmed |
Changed in xorg-server: | |
assignee: | nobody → bryceharrington |
importance: | Undecided → High |
status: | Confirmed → Triaged |
Changed in xorg-server: | |
status: | Confirmed → Fix Released |
Changed in xorg-server: | |
importance: | Unknown → High |
Changed in xorg-server: | |
importance: | High → Unknown |
Changed in xorg-server: | |
importance: | Unknown → High |
To post a comment you must log in.
Could someone test this patch?
diff --git a/hw/xfree86/ modes/xf86Crtc. c b/hw/xfree86/ modes/xf86Crtc. c modes/xf86Crtc. c modes/xf86Crtc. c clip_video_ helper( ScrnInfoPtr pScrn, notify_ proc_ptr crtc_notify (ScreenPtr screen, xf86_crtc_ notify_ proc_ptr new) screen- >myNum] ; CONFIG_ PTR(scrn) ; notify_ proc_ptr old; >xf86_crtc_ notify; >xf86_crtc_ notify = new; PrivateIndex != -1) screen- >myNum] ; CONFIG_ PTR(scrn) ; notify_ proc_ptr old; >xf86_crtc_ notify; >xf86_crtc_ notify = new;
index b972974..f4b04d8 100644
--- a/hw/xfree86/
+++ b/hw/xfree86/
@@ -2940,22 +2940,29 @@ xf86_crtc_
xf86_crtc_
xf86_wrap_
{
- ScrnInfoPtr scrn = xf86Screens[
- xf86CrtcConfigPtr config = XF86_CRTC_
- xf86_crtc_
-
- old = config-
- config-
- return old;
+ if (xf86CrtcConfig
+ {
+ ScrnInfoPtr scrn = xf86Screens[
+ xf86CrtcConfigPtr config = XF86_CRTC_
+ xf86_crtc_
+
+ old = config-
+ config-
+ return old;
+ }
+ return NULL;
}
void crtc_notify( ScreenPtr screen, xf86_crtc_ notify_ proc_ptr old) screen- >myNum] ; CONFIG_ PTR(scrn) ; >xf86_crtc_ notify = old; PrivateIndex != -1) screen- >myNum] ; CONFIG_ PTR(scrn) ; >xf86_crtc_ notify = old;
xf86_unwrap_
{
- ScrnInfoPtr scrn = xf86Screens[
- xf86CrtcConfigPtr config = XF86_CRTC_
-
- config-
+ if (xf86CrtcConfig
+ {
+ ScrnInfoPtr scrn = xf86Screens[
+ xf86CrtcConfigPtr config = XF86_CRTC_
+
+ config-
+ }
}
void