[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-lenny'



Rebased ref, commits from common ancestor:
commit 872cd04ea5dbc3c33660abe459a4b14f780371f3
Author: Julien Cristau <jcristau@debian.org>
Date:   Sun Mar 8 22:31:52 2009 +0100

    Add an fbdev screen as a fallback on sparc
    
    Because of a bug in our PCI code that got exposed by recent kernels,
    we will fail to start with PCI drivers on sparc.  Add a new fallback
    screen using the fbdev driver that should hopefully still work.
    
    For this to work we need xf86MapDomainMemory to not throw a fatal error
    on failure, otherwise we won't even try the fallback.

diff --git a/debian/changelog b/debian/changelog
index 8b6e9b2..d6c7c66 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.4.2-10.lenny1) stable; urgency=low
+
+  * Work around a bug in the sparc PCI code by falling back to the fbdev
+    driver (closes: #488669).
+
+ -- Julien Cristau <jcristau@debian.org>  Sun, 08 Mar 2009 22:25:46 +0100
+
 xorg-server (2:1.4.2-10) unstable; urgency=medium
 
   * Cherry-pick from upstream: GLcore: make googleearth not crash the server
diff --git a/debian/patches/55_sparc-fbdev-fallback.diff b/debian/patches/55_sparc-fbdev-fallback.diff
new file mode 100644
index 0000000..cab2a6b
--- /dev/null
+++ b/debian/patches/55_sparc-fbdev-fallback.diff
@@ -0,0 +1,128 @@
+From db183d95a4b03a735da54609b6158e17b0422e62 Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Tue, 24 Feb 2009 01:25:32 +0100
+Subject: [PATCH] Add an fbdev screen as a fallback on sparc
+
+Because of a bug in our PCI code that got exposed by recent kernels,
+we will fail to start with PCI drivers on sparc.  Add a new fallback
+screen using the fbdev driver that should hopefully still work.
+
+For this to work we need xf86MapDomainMemory to not throw a fatal error
+on failure, otherwise we won't even try the fallback.
+---
+ hw/xfree86/common/xf86Config.c       |   65 ++++++++++++++++++++++++++++++++++
+ hw/xfree86/os-support/bus/linuxPci.c |    4 +-
+ 2 files changed, 67 insertions(+), 2 deletions(-)
+
+Index: xorg-server/hw/xfree86/common/xf86Config.c
+===================================================================
+--- xorg-server.orig/hw/xfree86/common/xf86Config.c
++++ xorg-server/hw/xfree86/common/xf86Config.c
+@@ -1530,6 +1530,51 @@
+        {0}, FALSE },
+ };
+ 
++#ifdef __sparc__
++/*
++ * XXX this is a kludge to workaround a bug on sparc that makes X fail to
++ * start on pci platforms, and where we want to always fallback to fbdev.
++ */
++static void configAddFbdev(XF86ConfLayoutPtr conf_layout)
++{
++    XF86ConfScreenPtr fbdev_screen = xnfcalloc(1, sizeof(XF86ConfScreenRec));
++    XF86ConfDevicePtr fbdev_device = xnfcalloc(1, sizeof(XF86ConfDeviceRec));
++    XF86ConfAdjacencyPtr fbdev_adjp = xnfcalloc(1, sizeof(XF86ConfAdjacencyRec));
++
++    fbdev_adjp->adj_scrnum = -1;
++    fbdev_adjp->adj_screen = fbdev_screen;
++    fbdev_adjp->adj_screen_str = xstrdup("fbdev fallback Screen");
++    fbdev_adjp->adj_where = CONF_ADJ_OBSOLETE;
++
++    fbdev_screen->scrn_identifier = xstrdup(fbdev_adjp->adj_screen_str);
++    fbdev_screen->scrn_device_str = xstrdup("fbdev fallback Device");
++    fbdev_screen->scrn_device = fbdev_device;
++
++    fbdev_device->dev_identifier = xstrdup(fbdev_screen->scrn_device_str);
++    fbdev_device->dev_driver = xstrdup("fbdev");
++
++    conf_layout->lay_adjacency_lst =
++	xf86addListItem(&conf_layout->lay_adjacency_lst->list,
++                        &fbdev_adjp->list);
++}
++
++static XF86ConfScreenPtr configAddFbdevScreen(void)
++{
++    XF86ConfScreenPtr fbdev_screen = xnfcalloc(1, sizeof(XF86ConfScreenRec));
++    XF86ConfDevicePtr fbdev_device = xnfcalloc(1, sizeof(XF86ConfDeviceRec));
++
++    fbdev_screen->scrn_identifier = xstrdup("fbdev fallback Screen");
++    fbdev_screen->scrn_device_str = xstrdup("fbdev fallback Device");
++    fbdev_screen->scrn_device = fbdev_device;
++
++    fbdev_device->dev_identifier = xstrdup(fbdev_screen->scrn_device_str);
++    fbdev_device->dev_driver = xstrdup("fbdev");
++
++    return fbdev_screen;
++
++}
++#endif
++
+ /*
+  * figure out which layout is active, which screens are used in that layout,
+  * which drivers and monitors are used in these screens
+@@ -1576,6 +1621,9 @@
+     }
+     xf86Msg(from, "ServerLayout \"%s\"\n", conf_layout->lay_identifier);
+     adjp = conf_layout->lay_adjacency_lst;
++#ifdef __sparc__
++    configAddFbdev(conf_layout);
++#endif
+ 
+     /*
+      * we know that each screen is referenced exactly once on the left side
+@@ -1820,13 +1868,30 @@
+ 
+     /* We have exactly one screen */
+ 
++#ifndef __sparc__
+     slp = xnfcalloc(1, 2 * sizeof(screenLayoutRec));
++#else
++    slp = xnfcalloc(3, sizeof(screenLayoutRec));
++#endif
++
+     slp[0].screen = xnfcalloc(1, sizeof(confScreenRec));
++#ifndef __sparc__
+     slp[1].screen = NULL;
++#else
++    slp[1].screen = xnfcalloc(1, sizeof(confScreenRec));
++    slp[2].screen = NULL;
++#endif
+     if (!configScreen(slp[0].screen, conf_screen, 0, from)) {
+ 	xfree(slp);
+ 	return FALSE;
+     }
++#ifdef __sparc__
++    conf_screen = configAddFbdevScreen();
++    if (!configScreen(slp[1].screen, conf_screen, 1, X_DEFAULT)) {
++	xfree(slp);
++	return FALSE;
++    }
++#endif
+     servlayoutp->id = "(implicit)";
+     servlayoutp->screens = slp;
+     servlayoutp->inactives = xnfcalloc(1, sizeof(GDevRec));
+Index: xorg-server/hw/xfree86/os-support/bus/linuxPci.c
+===================================================================
+--- xorg-server.orig/hw/xfree86/os-support/bus/linuxPci.c
++++ xorg-server/hw/xfree86/os-support/bus/linuxPci.c
+@@ -703,8 +703,8 @@
+     if (fd >= 0)
+ 	close(fd);
+     if (addr == NULL || addr == MAP_FAILED) {
+-	perror("mmap failure");
+-	FatalError("xf86MapDomainMem():  mmap() failure\n");
++	ErrorF("xf86MapDomainMem():  %s\n", strerror(errno));
++	addr = NULL;
+     }
+     return addr;
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 25604c9..1b2ebf2 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -28,6 +28,7 @@
 52_xevie-swap-replies.diff
 53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
 54_more-sanity-checks.diff
+55_sparc-fbdev-fallback.diff
 91_ttf2pt1
 91_ttf2pt1_updates
 92_xprint-security-holes-fix.patch

commit ab92077a10831eff21971d4aa171cfa935c3e379
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Jan 9 02:26:35 2009 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index a316198..8b6e9b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.4.2-10) unstable; urgency=medium
+
+  * Cherry-pick from upstream: GLcore: make googleearth not crash the server
+    on sw-rendering (closes: #495483).
+
+ -- Julien Cristau <jcristau@debian.org>  Fri, 09 Jan 2009 02:26:06 +0100
+
 xorg-server (2:1.4.2-9) unstable; urgency=low
 
   * Cherry-pick patches from upstream to make xf86ScaleAxis() work correctly.

commit 76ba8884f8ef248011bdbaee54f51998934a25c7
Author: Dave Airlie <airlied@linux.ie>
Date:   Tue Apr 22 15:13:57 2008 +1000

    GLcore: make googleearth not crash the server on sw-rendering.
    
    I don't think this is the 100% correct answer as I get log spam saying
    (EE) DoSwapInterval: cx = 0x98b8998, GLX screen = 0x96dd780
    (EE) AIGLX: cx->pGlxScreen->swapInterval == NULL
    
    but thats better than X exiting in my book.
    (cherry picked from commit a368ab757edf36ed7bbda023673d28883ce11231)
    (cherry picked from commit d7db6dd1a15393e9a30acfe87f7651ca1c9a0d75)

diff --git a/GL/glx/glxglcore.c b/GL/glx/glxglcore.c
index 679d55c..a29e0ea 100644
--- a/GL/glx/glxglcore.c
+++ b/GL/glx/glxglcore.c
@@ -390,6 +390,7 @@ __glXMesaScreenProbe(ScreenPtr pScreen)
     screen->base.destroy        = __glXMesaScreenDestroy;
     screen->base.createContext  = __glXMesaScreenCreateContext;
     screen->base.createDrawable = __glXMesaScreenCreateDrawable;
+    screen->base.swapInterval  = NULL;
     screen->base.pScreen       = pScreen;
 
     /*

commit 8fa683e06caa42aea31ed550e3f6f279f2f6f033
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Nov 13 23:33:14 2008 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 485fdf1..a316198 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-xorg-server (2:1.4.2-9) UNRELEASED; urgency=low
+xorg-server (2:1.4.2-9) unstable; urgency=low
 
   * Cherry-pick patches from upstream to make xf86ScaleAxis() work correctly.
   * Steal patch from Fedora: more sanity checks to stop vmmouse from
     segfaulting the server (closes: #503459).
 
- -- Julien Cristau <jcristau@debian.org>  Thu, 13 Nov 2008 22:48:41 +0100
+ -- Julien Cristau <jcristau@debian.org>  Thu, 13 Nov 2008 23:32:47 +0100
 
 xorg-server (2:1.4.2-8) unstable; urgency=low
 

commit 208daed7e6101cdc711e2705acf1b87952c1361c
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Nov 13 23:05:53 2008 +0100

    more sanity checks to stop vmmouse from segfaulting the server
    
    Patch stolen from Fedora (closes: #503459).

diff --git a/debian/changelog b/debian/changelog
index 2a80059..485fdf1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 xorg-server (2:1.4.2-9) UNRELEASED; urgency=low
 
   * Cherry-pick patches from upstream to make xf86ScaleAxis() work correctly.
+  * Steal patch from Fedora: more sanity checks to stop vmmouse from
+    segfaulting the server (closes: #503459).
 
  -- Julien Cristau <jcristau@debian.org>  Thu, 13 Nov 2008 22:48:41 +0100
 
diff --git a/debian/patches/54_more-sanity-checks.diff b/debian/patches/54_more-sanity-checks.diff
new file mode 100644
index 0000000..302b7d8
--- /dev/null
+++ b/debian/patches/54_more-sanity-checks.diff
@@ -0,0 +1,40 @@
+From 30c077f228f563e4e1f4115b345577d9fd393b68 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@redhat.com>
+Date: Fri, 24 Oct 2008 15:06:49 +1030
+Subject: [PATCH] dix: extra sanity-checks against potential NULL-dereferences. #434807
+
+Two minor code paths could potentially crash the server:
+- if scr is NULL, we shouldn't try to dereference it.
+- if GPE is called with buttons != 0 but the event is not a
+  ButtonPress or ButtonRelease, the button mapping may dereference a NULL
+  pointer.
+
+Admittedly the second should never happen, but better to guard against it.
+---
+ dix/getevents.c |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+Index: xorg-server/dix/getevents.c
+===================================================================
+--- xorg-server.orig/dix/getevents.c
++++ xorg-server/dix/getevents.c
+@@ -535,6 +535,9 @@
+     ScreenPtr scr = miPointerGetScreen(pDev);
+ 
+     /* Sanity checks. */
++    if (!scr)
++        return 0;
++
+     if (type != MotionNotify && type != ButtonPress && type != ButtonRelease)
+         return 0;
+ 
+@@ -546,6 +549,9 @@
+     if (!pDev->valuator)
+         return 0;
+ 
++    if (buttons && !pDev->button)
++        return 0;
++
+     if (!coreOnly && pDev->coreEvents)
+         num_events = 2;
+     else
diff --git a/debian/patches/series b/debian/patches/series
index 5c1b515..25604c9 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -27,6 +27,7 @@
 51_xevie-length.diff
 52_xevie-swap-replies.diff
 53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
+54_more-sanity-checks.diff
 91_ttf2pt1
 91_ttf2pt1_updates
 92_xprint-security-holes-fix.patch

commit 91e635e045fd24f486859c95c53589f306a483e7
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Nov 13 22:49:08 2008 +0100

    update changelog

diff --git a/debian/changelog b/debian/changelog
index 0137782..2a80059 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.4.2-9) UNRELEASED; urgency=low
+
+  * Cherry-pick patches from upstream to make xf86ScaleAxis() work correctly.
+
+ -- Julien Cristau <jcristau@debian.org>  Thu, 13 Nov 2008 22:48:41 +0100
+
 xorg-server (2:1.4.2-8) unstable; urgency=low
 
   * Add patch from Petr Salinger to fix PCI domain support on kfreebsd

commit 7bb02196971f038204aded1b8971315b4b2373e0
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Thu Oct 30 16:02:13 2008 +1030

    xfree86: fix xf86ScaleAxis once again.
    
    Maybe one day I stop doing stupid patches like
    a3a7c12fcf8e4ac1418f9ea53f76091f309a721b.
    
    So, if X < low, reset to low, and _not_ to high.
    If X > high, reset to high, and _not_ to low.
    (cherry picked from commit 4ce19b4477057a724b548e342d4c6da2b6721824)

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 23021b3..d8b05ab 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -738,9 +738,9 @@ xf86ScaleAxis(int	Cx,
     }
     
     if (X > Sxhigh)
-	X = Sxlow;
-    if (X < Sxlow)
 	X = Sxhigh;
+    if (X < Sxlow)
+	X = Sxlow;
     
     return (X);
 }

commit 068e68e206223aef2b6b85fc9b2468589645298a
Author: Peter Hutterer <peter@cs.unisa.edu.au>
Date:   Sun Jun 8 23:38:45 2008 +0930

    xfree86: Fix up xf86ScaleAxis
    
    Some driver still call it, so we might as well work correctly. Always
    resetting X to the Sxhigh is sub-optimal.
    (cherry picked from commit a3a7c12fcf8e4ac1418f9ea53f76091f309a721b)

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index ca2be5c..23021b3 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -737,9 +737,9 @@ xf86ScaleAxis(int	Cx,
 	ErrorF ("Divide by Zero in xf86ScaleAxis");
     }
     
-    if (X > Sxlow)
+    if (X > Sxhigh)
 	X = Sxlow;
-    if (X < Sxhigh)
+    if (X < Sxlow)
 	X = Sxhigh;
     
     return (X);

commit bf2ca2eadea35f814d3157cd2d5064b6e7a32f46
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Nov 11 20:47:24 2008 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 8186d92..0137782 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.4.2-8) UNRELEASED; urgency=low
+xorg-server (2:1.4.2-8) unstable; urgency=low
 
   * Add patch from Petr Salinger to fix PCI domain support on kfreebsd
     (closes: #499501).
@@ -7,7 +7,7 @@ xorg-server (2:1.4.2-8) UNRELEASED; urgency=low
     actually supports (closes: #504819, #486925); cherry-picked from upstream
     git.
 
- -- Julien Cristau <jcristau@debian.org>  Mon, 06 Oct 2008 18:37:08 +0200
+ -- Julien Cristau <jcristau@debian.org>  Tue, 11 Nov 2008 20:46:52 +0100
 
 xorg-server (2:1.4.2-7) unstable; urgency=low
 

commit f03646c4074409ca98406ec0c71e47407971ab8c
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Nov 7 21:04:24 2008 +0100

    update changelog

diff --git a/debian/changelog b/debian/changelog
index 53babc4..8186d92 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,10 @@ xorg-server (2:1.4.2-8) UNRELEASED; urgency=low
 
   * Add patch from Petr Salinger to fix PCI domain support on kfreebsd
     (closes: #499501).
+  * xfree86: xf86SetDepthBpp needs to respect the driver's depth24flags.
+    Instead of forcing a 32bpp framebuffer, we pick a value that the driver
+    actually supports (closes: #504819, #486925); cherry-picked from upstream
+    git.
 
  -- Julien Cristau <jcristau@debian.org>  Mon, 06 Oct 2008 18:37:08 +0200
 

commit f6d8e366f8b922f7e711f4c29b5ea11ec4f8b342
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Nov 7 17:36:38 2008 +0100

    xfree86: xf86SetDepthBpp needs to respect the driver's depth24flags
    
    When setting the depth to 24, leave bpp unset so the logic to pick
    a supported value is used instead of ignoring the driver's preference
    and forcing 32 bpp.
    (cherry picked from commit 991c88b7542164194be73573e7644164416ea90c)

diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 7adac73..b6e0787 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -466,10 +466,6 @@ xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad)
 #define GLOBAL_DEFAULT_DEPTH 24
 #endif
 
-#ifndef GLOBAL_DEFAULT_FBBPP
-#define GLOBAL_DEFAULT_FBBPP 32
-#endif
-
 _X_EXPORT Bool
 xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
 		int depth24flags)
@@ -547,7 +543,6 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
 	    if (depth > 0)
 		scrp->depth = depth;
 	} else {
-	    scrp->bitsPerPixel = GLOBAL_DEFAULT_FBBPP;
 	    scrp->depth = GLOBAL_DEFAULT_DEPTH;
 	}
     }

commit ab83e47b93d2c6add5514304cbe21b31f88b5d4e
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Oct 6 18:38:04 2008 +0200

    Add patch from Petr Salinger to fix PCI domain support on kfreebsd

diff --git a/debian/changelog b/debian/changelog
index cc60ed9..53babc4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.4.2-8) UNRELEASED; urgency=low
+
+  * Add patch from Petr Salinger to fix PCI domain support on kfreebsd
+    (closes: #499501).
+
+ -- Julien Cristau <jcristau@debian.org>  Mon, 06 Oct 2008 18:37:08 +0200
+
 xorg-server (2:1.4.2-7) unstable; urgency=low
 
   * Update debian/copyright to the SGI Free Software License B, version 2.0.
diff --git a/debian/patches/53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch b/debian/patches/53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
new file mode 100644
index 0000000..acb6c6c
--- /dev/null
+++ b/debian/patches/53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
@@ -0,0 +1,32 @@
+From 43b9645e4f5343757613c422c9e1204ba826d1f7 Mon Sep 17 00:00:00 2001
+From: Petr Salinger <Petr.Salinger@seznam.cz>
+Date: Mon, 6 Oct 2008 18:33:31 +0200
+Subject: [PATCH] Properly initialize io.pi_sel.pc_domain on kfreebsd
+
+---
+ hw/xfree86/os-support/bus/freebsdPci.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/os-support/bus/freebsdPci.c b/hw/xfree86/os-support/bus/freebsdPci.c
+index 63c00b2..b1f3dbd 100644
+--- a/hw/xfree86/os-support/bus/freebsdPci.c
++++ b/hw/xfree86/os-support/bus/freebsdPci.c
+@@ -133,6 +133,7 @@ freebsdPciCfgRead(PCITAG tag, int off)
+ {
+ 	struct pci_io io;
+ 	int error;
++	io.pi_sel.pc_domain = PCI_DOM_FROM_TAG(tag);
+ 	io.pi_sel.pc_bus = BUS(tag);
+ 	io.pi_sel.pc_dev = DFN(tag) >> 3;
+ 	io.pi_sel.pc_func = DFN(tag) & 7;
+@@ -148,6 +149,7 @@ static void
+ freebsdPciCfgWrite(PCITAG tag, int off, CARD32 val)
+ {
+ 	struct pci_io io;
++	io.pi_sel.pc_domain = PCI_DOM_FROM_TAG(tag);
+ 	io.pi_sel.pc_bus = BUS(tag);
+ 	io.pi_sel.pc_dev = DFN(tag) >> 3;
+ 	io.pi_sel.pc_func = DFN(tag) & 7;
+-- 
+1.5.6.5
+
diff --git a/debian/patches/series b/debian/patches/series
index 55ff4fa..5c1b515 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -26,6 +26,7 @@
 50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch
 51_xevie-length.diff
 52_xevie-swap-replies.diff
+53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
 91_ttf2pt1
 91_ttf2pt1_updates
 92_xprint-security-holes-fix.patch

commit 2844713eabdceb6d726a07fa06754ee1ac66fd38
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Sep 30 00:49:32 2008 +0200

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 0e39d85..cc60ed9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.4.2-7) UNRELEASED; urgency=low
+xorg-server (2:1.4.2-7) unstable; urgency=low
 
   * Update debian/copyright to the SGI Free Software License B, version 2.0.
     It now mirrors the free X11 license used by X.Org.
@@ -11,7 +11,7 @@ xorg-server (2:1.4.2-7) UNRELEASED; urgency=low
   * xvfb-run: append to $ERRORFILE instead of truncating it, so the error
     output from Xvfb is not deleted when we run 'xauth remove'.
 
- -- Julien Cristau <jcristau@debian.org>  Fri, 19 Sep 2008 17:38:00 +0200
+ -- Julien Cristau <jcristau@debian.org>  Tue, 30 Sep 2008 00:39:58 +0200
 
 xorg-server (2:1.4.2-6) unstable; urgency=low
 

commit 554fbb20e7792d0207f485af9842f8714abc941c
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Sep 29 16:11:13 2008 +0200

    xvfb-run: append to $ERRORFILE instead of truncating it
    
    Otherwise the error output from Xvfb is deleted when we run 'xauth remove'.

diff --git a/debian/changelog b/debian/changelog
index ce84323..0e39d85 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,8 @@ xorg-server (2:1.4.2-7) UNRELEASED; urgency=low
     still not free.  SGI has since released their code under FreeB, but that
     doesn't necessarily apply to contributions from other people.  Hopefully
     this can be cleared up soon, though.
+  * xvfb-run: append to $ERRORFILE instead of truncating it, so the error
+    output from Xvfb is not deleted when we run 'xauth remove'.
 
  -- Julien Cristau <jcristau@debian.org>  Fri, 19 Sep 2008 17:38:00 +0200
 
diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run
index 5bbd886..c85f86a 100644
--- a/debian/local/xvfb-run
+++ b/debian/local/xvfb-run
@@ -84,7 +84,7 @@ find_free_servernum() {
 # Clean up files
 clean_up() {
     if [ -e "$AUTHFILE" ]; then
-        XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >"$ERRORFILE" 2>&1
+        XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
     fi
     if [ -n "$XVFB_RUN_TMPDIR" ]; then
         if ! rm -r "$XVFB_RUN_TMPDIR"; then
@@ -158,8 +158,8 @@ fi
 # Start Xvfb.
 MCOOKIE=$(mcookie)
 XAUTHORITY=$AUTHFILE xauth add ":$SERVERNUM" "$XAUTHPROTO" "$MCOOKIE" \
-  >"$ERRORFILE" 2>&1
-XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >"$ERRORFILE" \
+  >>"$ERRORFILE" 2>&1
+XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
   2>&1 &
 XVFBPID=$!
 sleep "$STARTWAIT"

commit fc895bca5eb03bd1269b01509af396c6edb74266
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Sep 29 15:48:27 2008 +0200

    Slightly reword the changelog entry

diff --git a/debian/changelog b/debian/changelog
index f54acd7..ce84323 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,9 +3,11 @@ xorg-server (2:1.4.2-7) UNRELEASED; urgency=low
   * Update debian/copyright to the SGI Free Software License B, version 2.0.
     It now mirrors the free X11 license used by X.Org.
     http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html
-    Not closing bug#211765 for now, because GL/glx/glxext.c and
+  * Not closing bug#211765 for now, because GL/glx/glxext.c and
     hw/dmx/glxProxy/glxext.c are covered by the GLX Public License, which is
-    still not free.
+    still not free.  SGI has since released their code under FreeB, but that
+    doesn't necessarily apply to contributions from other people.  Hopefully
+    this can be cleared up soon, though.
 
  -- Julien Cristau <jcristau@debian.org>  Fri, 19 Sep 2008 17:38:00 +0200
 

commit 587518926d8ecead1617461b8cc9062917c71a52
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Sep 19 18:13:08 2008 +0200

    Update debian/copyright to the SGI Free Software License B, version 2.0.
    
    It now mirrors the free X11 license used by X.Org.
    http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html
    Not closing bug#211765 for now, because GL/glx/glxext.c and
    hw/dmx/glxProxy/glxext.c are covered by the GLX Public License, which is still
    not free.

diff --git a/debian/changelog b/debian/changelog
index 2baa16c..f54acd7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+xorg-server (2:1.4.2-7) UNRELEASED; urgency=low
+
+  * Update debian/copyright to the SGI Free Software License B, version 2.0.
+    It now mirrors the free X11 license used by X.Org.
+    http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html
+    Not closing bug#211765 for now, because GL/glx/glxext.c and
+    hw/dmx/glxProxy/glxext.c are covered by the GLX Public License, which is
+    still not free.
+
+ -- Julien Cristau <jcristau@debian.org>  Fri, 19 Sep 2008 17:38:00 +0200
+
 xorg-server (2:1.4.2-6) unstable; urgency=low
 
   * Xevie: always set rep.length to 0 (closes: #497337).  Thanks, Thorvald
diff --git a/debian/copyright b/debian/copyright
index 313c852..877985f 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -832,188 +832,32 @@ info@urwpp.de or design@bigelowandholmes.com
 Certain files in this package (e.g. GL/glx/g_*) are covered by the SGI
 Free Software License B, Version 1.1, http://oss.sgi.com/projects/FreeB
 
-SGI FREE SOFTWARE LICENSE B (Version 1.1 [02/22/2000])
-1. Definitions.
-1.1. "Additional Notice Provisions" means such additional provisions as appear in the
-Notice in Original Code under the heading "Additional Notice Provisions."
-1.2. "Covered Code" means the Original Code or Modifications, or any combination thereof.
-1.3. "Hardware" means any physical device that accepts input, processes input, stores the
-results of processing, and/or provides output.
-1.4. "Larger Work" means a work that combines Covered Code or portions thereof with
-code not governed by the terms of this License.
-1.5. "Licensable" means having the right to grant, to the maximum extent possible, whether
-at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
-1.6. "License" means this document.
-1.7. "Licensed Patents" means patent claims Licensable by SGI that are infringed by the use
-or sale of Original Code or any Modifications provided by SGI, or any combination thereof.
-1.8. "Modifications" means any addition to or deletion from the substance or structure of the
-Original Code or any previous Modifications. When Covered Code is released as a series of files,
-a Modification is:
-A. Any addition to the contents of a file containing Original Code and/or addition to or
-deletion from the contents of a file containing previous Modifications.
-B. Any new file that contains any part of the Original Code or previous Modifications.
-1.9. "Notice" means any notice in Original Code or Covered Code, as required by and in
-compliance with this License.
-1.10. "Original Code" means source code of computer software code that is described in the
-source code Notice required by Exhibit A as Original Code, and updates and error corrections
-specifically thereto.
-1.11. "Recipient" means an individual or a legal entity exercising rights under, and complying
-with all of the terms of, this License or a future version of this License issued under Section 8.
-For legal entities, "Recipient" includes any entity that controls, is controlled by, or is under
-common control with Recipient. For purposes of this definition, "control" of an entity means (a)
-the power, direct or indirect, to direct or manage such entity, or (b) ownership of fifty percent
-(50%) or more of the outstanding shares or beneficial ownership of such entity.
-1.12. "Recipient Patents" means patent claims Licensable by a Recipient that are infringed by
-the use or sale of Original Code or any Modifications provided by SGI, or any combination
-thereof.
-1.13. "SGI" means Silicon Graphics, Inc.
-1.14. "SGI Patents" means patent claims Licensable by SGI other than the Licensed Patents.
-2. License Grant and Restrictions.
-2.1. SGI License Grant. Subject to the terms of this License and any third party intellectual
-property claims, for the duration of intellectual property protections inherent in the Original
-Code, SGI hereby grants Recipient a worldwide, royalty-free, non-exclusive license, to do the
-following: (i) under copyrights Licensable by SGI, to reproduce, distribute, create derivative
-works from, and, to the extent applicable, display and perform the Original Code and/or any
-Modifications provided by SGI alone and/or as part of a Larger Work; and (ii) under any
-Licensable Patents, to make, have made, use, sell, offer for sale, import and/or otherwise transfer
-the Original Code and/or any Modifications provided by SGI. Recipient accepts the terms and
-conditions of this License by undertaking any of the aforementioned actions. The patent license
-shall apply to the Covered Code if, at the time any related Modification is added, such addition
-of the Modification causes such combination to be covered by the Licensed Patents. The patent
-license in Section 2.1(ii) shall not apply to any other combinations that include the Modification.
-No patent license is provided under SGI Patents for infringements of SGI Patents by
-Modifications not provided by SGI or combinations of Original Code and Modifications not
-provided by SGI.
-2.2. Recipient License Grant. Subject to the terms of this License and any third party
-intellectual property claims, Recipient hereby grants SGI and any other Recipients a worldwide,
-royalty-free, non-exclusive license, under any Recipient Patents, to make, have made, use, sell,
-offer for sale, import and/or otherwise transfer the Original Code and/or any Modifications
-provided by SGI.
-2.3. No License For Hardware Implementations. The licenses granted in Section 2.1 and
-2.2 are not applicable to implementation in Hardware of the algorithms embodied in the Original
-Code or any Modifications provided by SGI .
-3. Redistributions.
-3.1. Retention of Notice/Copy of License. The Notice set forth in Exhibit A, below, must be
-conspicuously retained or included in any and all redistributions of Covered Code. For
-distributions of the Covered Code in source code form, the Notice must appear in every file that
-can include a text comments field; in executable form, the Notice and a copy of this License
-must appear in related documentation or collateral where the Recipient's rights relating to
-Covered Code are described. Any Additional Notice Provisions which actually appears in the
-Original Code must also be retained or included in any and all redistributions of Covered Code.
-3.2. Alternative License. Provided that Recipient is in compliance with the terms of this
-License, Recipient may, so long as without derogation of any of SGI's rights in and to the
-Original Code, distribute the source code and/or executable version(s) of Covered Code under
-(1) this License; (2) a license identical to this License but for only such changes as are necessary
-in order to clarify Recipient's role as licensor of Modifications; and/or (3) a license of
-Recipient's choosing, containing terms different from this License, provided that the license
-terms include this Section 3 and Sections 4, 6, 7, 10, 12, and 13, which terms may not be
-modified or superseded by any other terms of such license. If Recipient elects to use any license
-other than this License, Recipient must make it absolutely clear that any of its terms which differ
-from this License are offered by Recipient alone, and not by SGI. It is emphasized that this
-License is a limited license, and, regardless of the license form employed by Recipient in
-accordance with this Section 3.2, Recipient may relicense only such rights, in Original Code and
-Modifications by SGI, as it has actually been granted by SGI in this License.
-3.3. Indemnity. Recipient hereby agrees to indemnify SGI for any liability incurred by SGI
-as a result of any such alternative license terms Recipient offers.
-4. Termination. This License and the rights granted hereunder will terminate automatically
-if Recipient breaches any term herein and fails to cure such breach within 30 days thereof. Any
-sublicense to the Covered Code that is properly granted shall survive any termination of this
-License, absent termination by the terms of such sublicense. Provisions that, by their nature,
-must remain in effect beyond the termination of this License, shall survive.
-5. No Trademark Or Other Rights. This License does not grant any rights to: (i) any
-software apart from the Covered Code, nor shall any other rights or licenses not expressly
-granted hereunder arise by implication, estoppel or otherwise with respect to the Covered Code;
-(ii) any trade name, trademark or service mark whatsoever, including without limitation any
-related right for purposes of endorsement or promotion of products derived from the Covered
-Code, without prior written permission of SGI; or (iii) any title to or ownership of the Original
-Code, which shall at all times remains with SGI. All rights in the Original Code not expressly
-granted under this License are reserved.
-6. Compliance with Laws; Non-Infringement. There are various worldwide laws,
-regulations, and executive orders applicable to dispositions of Covered Code, including without
-limitation export, re-export, and import control laws, regulations, and executive orders, of the
-U.S. government and other countries, and Recipient is reminded it is obliged to obey such laws,
-regulations, and executive orders. Recipient may not distribute Covered Code that (i) in any way
-infringes (directly or contributorily) any intellectual property rights of any kind of any other
-person or entity or (ii) breaches any representation or warranty, express, implied or statutory, to
-which, under any applicable law, it might be deemed to have been subject.
-7. Claims of Infringement. If Recipient learns of any third party claim that any disposition
-of Covered Code and/or functionality wholly or partially infringes the third party's intellectual
-property rights, Recipient will promptly notify SGI of such claim.
-8. Versions of the License. SGI may publish revised and/or new versions of the License
-from time to time, each with a distinguishing version number. Once Covered Code has been
-published under a particular version of the License, Recipient may, for the duration of the
-license, continue to use it under the terms of that version, or choose to use such Covered Code
-under the terms of any subsequent version published by SGI. Subject to the provisions of
-Sections 3 and 4 of this License, only SGI may modify the terms applicable to Covered Code
-created under this License.
-9. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED "AS IS." ALL
-EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS ARE DISCLAIMED,
-INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
-CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
-PARTICULAR PURPOSE, AND NON-INFRINGEMENT. SGI ASSUMES NO RISK AS TO
-THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD THE SOFTWARE
-PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR
-SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY IS AN
-ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS
-AUTHORIZED HEREUNDER EXCEPT SUBJECT TO THIS DISCLAIMER.
-10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES NOR LEGAL
-THEORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR
-STRICT LIABILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI
-LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
-CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
-LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, LOSS OF
-DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
-RESULTING FROM SGI's NEGLIGENCE TO THE EXTENT APPLICABLE LAW
-PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
-EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
-THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
-11. Indemnity. Recipient shall be solely responsible for damages arising, directly or
-indirectly, out of its utilization of rights under this License. Recipient will defend, indemnify and
-hold harmless Silicon Graphics, Inc. from and against any loss, liability, damages, costs or
-expenses (including the payment of reasonable attorneys fees) arising out of Recipient's use,
-modification, reproduction and distribution of the Covered Code or out of any representation or
-warranty made by Recipient.
-12. U.S. Government End Users. The Covered Code is a "commercial item" consisting of
-"commercial computer software" as such terms are defined in title 48 of the Code of Federal
-Regulations and all U.S. Government End Users acquire only the rights set forth in this License
-and are subject to the terms of this License.
-13. Miscellaneous. This License represents the complete agreement concerning the its
-subject matter. If any provision of this License is held to be unenforceable, such provision shall
-be reformed so as to achieve as nearly as possible the same legal and economic effect as the
-original provision and the remainder of this License will remain in effect. This License shall be
-governed by and construed in accordance with the laws of the United States and the State of
-California as applied to agreements entered into and to be performed entirely within California
-between California residents. Any litigation relating to this License shall be subject to the
-exclusive jurisdiction of the Federal Courts of the Northern District of California (or, absent
-subject matter jurisdiction in such courts, the courts of the State of California), with venue lying
-exclusively in Santa Clara County, California, with the losing party responsible for costs,
-including without limitation, court costs and reasonable attorneys fees and expenses. The
-application of the United Nations Convention on Contracts for the International Sale of Goods is
-expressly excluded. Any law or regulation that provides that the language of a contract shall be
-construed against the drafter shall not apply to this License.
-Exhibit A
-License Applicability. Except to the extent portions of this file are made subject to an
-alternative license as permitted in the SGI Free Software License B, Version 1.1 (the "License"),
-the contents of this file are subject only to the provisions of the License. You may not use this
-file except in compliance with the License. You may obtain a copy of the License at Silicon
-Graphics, Inc., attn: Legal Services, 1600 Amphitheatre Parkway, Mountain View, CA 94043-
-1351, or at:
-http://oss.sgi.com/projects/FreeB
-Note that, as provided in the License, the Software is distributed on an "AS IS" basis, with ALL
-EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED,
-INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
-CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
-PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-Original Code. The Original Code is: [name of software, version number, and release date],
-developed by Silicon Graphics, Inc. The Original Code is Copyright (c) [dates of first
-publication, as appearing in the Notice in the Original Code] Silicon Graphics, Inc. Copyright in
-any portions created by third parties is as indicated elsewhere herein. All Rights Reserved.
-Additional Notice Provisions: [such additional provisions, if any, as appear in the Notice in the
-Original Code under the heading "Additional Notice Provisions"]
+SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
 
+Copyright (C) [dates of first publication] Silicon Graphics, Inc. All Rights
+Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+The above copyright notice including the dates of first publication and either
+this permission notice or a reference to http://oss.sgi.com/projects/FreeB/
+shall be included in all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+Except as contained in this notice, the name of Silicon Graphics, Inc. shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from Silicon
+Graphics, Inc.
 
 =============================================================================
 Xprint uses ttf2pt1 for Freetype support.

commit 986eccd61edb25eadcc7c05db5fd3ea3036c607f
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Sep 15 01:21:23 2008 +0200

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index f66ad47..2baa16c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,13 @@
-xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
+xorg-server (2:1.4.2-6) unstable; urgency=low
 
   * Xevie: always set rep.length to 0 (closes: #497337).  Thanks, Thorvald
     Natvig!
   * Xevie: swap replies if necessary, to not confuse clients with a different
     endianness.
   * Cherry-picked from upstream git:
-    XF86VidMode: Correct a NULL pointer deference (closes: #498289)
+    XF86VidMode: Correct a NULL pointer dereference (closes: #498289)
 
- -- Julien Cristau <jcristau@debian.org>  Mon, 01 Sep 2008 19:21:18 +0200
+ -- Julien Cristau <jcristau@debian.org>  Mon, 15 Sep 2008 01:21:13 +0200
 
 xorg-server (2:1.4.2-5) unstable; urgency=low
 

commit 13f68e9414dba88af77fd96cdd3507a09a394cf8
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Sep 9 18:31:52 2008 +0100

    Update changelog for cherry-pick

diff --git a/debian/changelog b/debian/changelog
index 22c67ab..f66ad47 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,8 @@ xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
     Natvig!
   * Xevie: swap replies if necessary, to not confuse clients with a different
     endianness.
+  * Cherry-picked from upstream git:
+    XF86VidMode: Correct a NULL pointer deference (closes: #498289)
 
  -- Julien Cristau <jcristau@debian.org>  Mon, 01 Sep 2008 19:21:18 +0200
 

commit 3f1d43e35cdb29b2fbd39c30ee31c12280cb51ec
Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
Date:   Fri May 23 13:50:39 2008 -0300

    Correct a NULL pointer deference
    
      The problem happens if Monitor/Card combo doesn't provide EDID info,
    and the XFree86-VidModeExtension extension is used.
    
    Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
    (cherry picked from commit c8af7ce35a900ac9b898f51c1b95dabad3ba1d76)

diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c
index 16a4d82..64e6a37 100644
--- a/hw/xfree86/common/xf86VidMode.c
+++ b/hw/xfree86/common/xf86VidMode.c
@@ -157,10 +157,14 @@ VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock)
 	return FALSE;
 
     pScrn = xf86Screens[scrnIndex];
-    *mode = (pointer)(pScrn->currentMode);
-    *dotClock = pScrn->currentMode->Clock;
 
-    return TRUE;
+    if (pScrn->currentMode) {
+	*mode = (pointer)(pScrn->currentMode);
+	*dotClock = pScrn->currentMode->Clock;
+
+	return TRUE;
+    }
+    return FALSE;
 }
 
 _X_EXPORT int

commit 797126dbf003df5474c3bf6eb0dab7be7e7f6a88
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Sep 3 14:59:13 2008 +0200

    Xevie: swap replies if necessary
    
    If the client has a different endianness we need to byteswap replies before
    sending them.


Reply to: