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

xorg-server: Changes to 'ubuntu'



 ChangeLog                                     |   42 ++++++++++++++++++++++++++
 Xext/panoramiX.c                              |   17 ++++++++--
 composite/compinit.c                          |    3 +
 configure.ac                                  |    4 +-
 debian/changelog                              |   26 ++++++++++++++++
 debian/patches/02_Disable-DRI-in-Xephyr.patch |   32 +++++++++++++++++++
 debian/patches/series                         |    1 
 exa/exa.c                                     |   10 ++++++
 randr/rrxinerama.c                            |   18 ++++++++---
 9 files changed, 142 insertions(+), 11 deletions(-)

New commits:
commit 7e2686f8387c9cf3a5d9519dd79d40b7183ba573
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date:   Wed Sep 24 19:44:42 2008 +0300

    Prepare changelog for release.

diff --git a/debian/changelog b/debian/changelog
index 2089e18..c7fda2d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.5.1-1ubuntu1) intrepid; urgency=low
+
+  * Merge with Debian experimental. (LP: #269388)
+
+ -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 24 Sep 2008 19:33:34 +0300
+
 xorg-server (2:1.5.1-1) experimental; urgency=low
 
   * New upstream bugfix release.

commit ecc713926b178331ea7bf8ee1679316904507ef9
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Sep 24 17:17:09 2008 +0200

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 6bda123..a332a39 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xorg-server (2:1.5.1-1) UNRELEASED; urgency=low
+xorg-server (2:1.5.1-1) experimental; urgency=low
 
   * New upstream bugfix release.
   * 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't
     work correctly.
   * Merge changelog from 2:1.4.2-6 (all changes are upstream now).
 
- -- Julien Cristau <jcristau@debian.org>  Sun, 21 Sep 2008 20:37:12 +0200
+ -- Julien Cristau <jcristau@debian.org>  Wed, 24 Sep 2008 17:49:18 +0200
 
 xorg-server (2:1.5.0-1) experimental; urgency=low
 

commit dfed9e40315aa0675f433740088a65cb96954abe
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Sep 24 17:33:53 2008 +0200

    Build fix in the xephyr patch

diff --git a/debian/patches/02_Disable-DRI-in-Xephyr.patch b/debian/patches/02_Disable-DRI-in-Xephyr.patch
index 63c7e3f..8ca1cf7 100644
--- a/debian/patches/02_Disable-DRI-in-Xephyr.patch
+++ b/debian/patches/02_Disable-DRI-in-Xephyr.patch
@@ -4,15 +4,12 @@ Date: Sun, 21 Sep 2008 20:28:16 +0200
 Subject: [PATCH] Disable DRI in Xephyr
 
 Doesn't work right, see fdo#16955
----
- configure.ac |   10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
 index 0262274..3ca285a 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1922,11 +1922,11 @@ if test "$KDRIVE" = yes; then
+@@ -1922,11 +1922,12 @@ if test "$KDRIVE" = yes; then
          XEPHYR=$xephyr
      fi
      XEPHYR_DRI=no
@@ -26,6 +23,7 @@ index 0262274..3ca285a 100644
 +#        XEPHYR_DRI_LIBS=-lGL
 +#        AC_SUBST(XEPHYR_DRI_LIBS)
 +#    fi
++    AC_SUBST(XEPHYR_DRI_LIBS)
      if test x$XEPHYR_DRI = xyes ; then
          AC_DEFINE(XEPHYR_DRI,1,[enable DRI extension in xephyr])
      fi

commit e84ea06e3b76ebe63d603333ce1ae48662a90fcc
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Sep 24 14:49:57 2008 +0200

    Update changelogs

diff --git a/ChangeLog b/ChangeLog
index 9f9199d..fef4b74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+commit 97f688f2b4b8ebfba77be00db68c4e6a555a5d62
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Sep 23 14:51:33 2008 -0400
+
+    xserver 1.5.1
+
+commit 68c575cb73fd6ff6c9c0ce29a3d8105da44abfcc
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Sep 23 11:05:44 2008 -0400
+
+    Move RELEASE_DATE below AC_INIT.
+    
+    Doing it the other way around clobbers the setting, which means you get
+    a null release date string in the log.  Thanks autoconf!
+
+commit dba26368e5dbdd35df97d38ed517d1248503ab51
+Author: Peter Harris <peter.harris@hummingbird.com>
+Date:   Thu Dec 20 15:58:01 2007 -0500
+
+    Fix panoramiX request and reply swapping
+    
+     Fix panoramiX request and reply swapping
+     Set window and screen values in panoramix replies
+     Prevent buffer overrun in ProcPanoramiXGetScreenSize
+    (cherry picked from commit 2b266eda6e23d16116f8a8e258192df353970279)
+
+commit ce6424853c2df2486ad99c0369974afc91a92993
+Author: Julien Cristau <jcristau@debian.org>
+Date:   Tue Sep 16 17:13:42 2008 +0200
+
+    exa: disable shared pixmaps
+    
+    They got re-enabled in ee7c684f21d220d5e046bab31ae617a7d64d60f6
+    ("Reimplement ShmPutImage.")
+    (cherry picked from commit b4762c0245ed2966606171cf27f40aa745fdc76e)
+
+commit 37876602957924c7cff759a800eddd574ee2385a
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Wed Sep 17 15:48:56 2008 -0700
+
+    Conditionalize Composite-based backing store on pScreen->backingStoreSupport.
+
 commit 05fb2f9e1249d0b91bf4318cec4fb309217adff4
 Author: Adam Jackson <ajax@redhat.com>
 Date:   Wed Sep 3 19:14:22 2008 -0400
diff --git a/debian/changelog b/debian/changelog
index 15d963a..360c163 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,6 @@
-xorg-server (2:1.5.0-2) UNRELEASED; urgency=low
+xorg-server (2:1.5.1-1) UNRELEASED; urgency=low
 
+  * New upstream bugfix release.
   * 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't
     work correctly.
 

commit 97f688f2b4b8ebfba77be00db68c4e6a555a5d62
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Sep 23 14:51:33 2008 -0400

    xserver 1.5.1

diff --git a/configure.ac b/configure.ac
index 51d8b14..ef276cc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.5.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="3 September 2008"
+AC_INIT([xorg-server], 1.5.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="23 September 2008"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE

commit 68c575cb73fd6ff6c9c0ce29a3d8105da44abfcc
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Sep 23 11:05:44 2008 -0400

    Move RELEASE_DATE below AC_INIT.
    
    Doing it the other way around clobbers the setting, which means you get
    a null release date string in the log.  Thanks autoconf!

diff --git a/configure.ac b/configure.ac
index 0262274..51d8b14 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-RELEASE_DATE="3 September 2008"
 AC_INIT([xorg-server], 1.5.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="3 September 2008"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE

commit dba26368e5dbdd35df97d38ed517d1248503ab51
Author: Peter Harris <peter.harris@hummingbird.com>
Date:   Thu Dec 20 15:58:01 2007 -0500

    Fix panoramiX request and reply swapping
    
     Fix panoramiX request and reply swapping
     Set window and screen values in panoramix replies
     Prevent buffer overrun in ProcPanoramiXGetScreenSize
    (cherry picked from commit 2b266eda6e23d16116f8a8e258192df353970279)

diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 2792dc7..8bc5c42 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -936,10 +936,11 @@ ProcPanoramiXGetState(ClientPtr client)
 	rep.length = 0;
 	rep.sequenceNumber = client->sequence;
 	rep.state = !noPanoramiXExtension;
+	rep.window = stuff->window;
     	if (client->swapped) {
 	    swaps (&rep.sequenceNumber, n);
 	    swapl (&rep.length, n);
-	    swaps (&rep.state, n);
+	    swapl (&rep.window, n);
 	}	
 	WriteToClient (client, sizeof (xPanoramiXGetStateReply), (char *) &rep);
 	return client->noClientException;
@@ -963,10 +964,11 @@ ProcPanoramiXGetScreenCount(ClientPtr client)
 	rep.length = 0;
 	rep.sequenceNumber = client->sequence;
 	rep.ScreenCount = PanoramiXNumScreens;
+	rep.window = stuff->window;
     	if (client->swapped) {
 	    swaps (&rep.sequenceNumber, n);
 	    swapl (&rep.length, n);
-	    swaps (&rep.ScreenCount, n);
+	    swapl (&rep.window, n);
 	}	
 	WriteToClient (client, sizeof (xPanoramiXGetScreenCountReply), (char *) &rep);
 	return client->noClientException;
@@ -980,6 +982,9 @@ ProcPanoramiXGetScreenSize(ClientPtr client)
 	xPanoramiXGetScreenSizeReply	rep;
 	register int			n, rc;
 	
+	if (stuff->screen >= PanoramiXNumScreens)
+	    return BadMatch;
+
 	REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
 	rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
 	if (rc != Success)
@@ -991,11 +996,15 @@ ProcPanoramiXGetScreenSize(ClientPtr client)
 		/* screen dimensions */
 	rep.width  = panoramiXdataPtr[stuff->screen].width; 
 	rep.height = panoramiXdataPtr[stuff->screen].height; 
+	rep.window = stuff->window;
+	rep.screen = stuff->screen;
     	if (client->swapped) {
 	    swaps (&rep.sequenceNumber, n);
 	    swapl (&rep.length, n);
-	    swaps (&rep.width, n);
-	    swaps (&rep.height, n);
+	    swapl (&rep.width, n);
+	    swapl (&rep.height, n);
+	    swapl (&rep.window, n);
+	    swapl (&rep.screen, n);
 	}	
 	WriteToClient (client, sizeof (xPanoramiXGetScreenSizeReply), (char *) &rep);
 	return client->noClientException;
diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
index 240fca2..e6acd5e 100644
--- a/randr/rrxinerama.c
+++ b/randr/rrxinerama.c
@@ -138,10 +138,11 @@ ProcRRXineramaGetState(ClientPtr client)
     rep.length = 0;
     rep.sequenceNumber = client->sequence;
     rep.state = active;
+    rep.window = stuff->window;
     if(client->swapped) {
        swaps (&rep.sequenceNumber, n);
        swapl (&rep.length, n);
-       swaps (&rep.state, n);
+       swapl (&rep.window, n);
     }
     WriteToClient(client, sizeof(xPanoramiXGetStateReply), (char *)&rep);
     return client->noClientException;
@@ -192,10 +193,11 @@ ProcRRXineramaGetScreenCount(ClientPtr client)
     rep.length = 0;
     rep.sequenceNumber = client->sequence;
     rep.ScreenCount = RRXineramaScreenCount (pWin->drawable.pScreen);
+    rep.window = stuff->window;
     if(client->swapped) {
        swaps(&rep.sequenceNumber, n);
        swapl(&rep.length, n);
-       swaps(&rep.ScreenCount, n);
+       swapl(&rep.window, n);
     }
     WriteToClient(client, sizeof(xPanoramiXGetScreenCountReply), (char *)&rep);
     return client->noClientException;
@@ -223,11 +225,15 @@ ProcRRXineramaGetScreenSize(ClientPtr client)
     rep.sequenceNumber = client->sequence;
     rep.width  = pRoot->drawable.width;
     rep.height = pRoot->drawable.height;
+    rep.window = stuff->window;
+    rep.screen = stuff->screen;
     if(client->swapped) {
        swaps(&rep.sequenceNumber, n);
        swapl(&rep.length, n);
-       swaps(&rep.width, n);
-       swaps(&rep.height, n);
+       swapl(&rep.width, n);
+       swapl(&rep.height, n);
+       swapl(&rep.window, n);
+       swapl(&rep.screen, n);
     }
     WriteToClient(client, sizeof(xPanoramiXGetScreenSizeReply), (char *)&rep);
     return client->noClientException;
@@ -351,6 +357,7 @@ SProcRRXineramaGetState(ClientPtr client)
     register int n;
     swaps (&stuff->length, n);
     REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
+    swapl (&stuff->window, n);
     return ProcRRXineramaGetState(client);
 }
 
@@ -361,6 +368,7 @@ SProcRRXineramaGetScreenCount(ClientPtr client)
     register int n;
     swaps (&stuff->length, n);
     REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
+    swapl (&stuff->window, n);
     return ProcRRXineramaGetScreenCount(client);
 }
 
@@ -371,6 +379,8 @@ SProcRRXineramaGetScreenSize(ClientPtr client)
     register int n;
     swaps (&stuff->length, n);
     REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
+    swapl (&stuff->window, n);
+    swapl (&stuff->screen, n);
     return ProcRRXineramaGetScreenSize(client);
 }
 

commit ce6424853c2df2486ad99c0369974afc91a92993
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Sep 16 17:13:42 2008 +0200

    exa: disable shared pixmaps
    
    They got re-enabled in ee7c684f21d220d5e046bab31ae617a7d64d60f6
    ("Reimplement ShmPutImage.")
    (cherry picked from commit b4762c0245ed2966606171cf27f40aa745fdc76e)

diff --git a/exa/exa.c b/exa/exa.c
index ccf148a..72539c0 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -43,6 +43,10 @@
 DevPrivateKey exaScreenPrivateKey = &exaScreenPrivateKey;
 DevPrivateKey exaPixmapPrivateKey = &exaPixmapPrivateKey;
 
+#ifdef MITSHM
+static ShmFuncs exaShmFuncs = { NULL, NULL };
+#endif
+
 static _X_INLINE void*
 ExaGetPixmapAddress(PixmapPtr p)
 {
@@ -924,6 +928,12 @@ exaDriverInit (ScreenPtr		pScreen,
     }
 #endif
 
+#ifdef MITSHM
+    /*
+     * Don't allow shared pixmaps.
+     */
+    ShmRegisterFuncs(pScreen, &exaShmFuncs);
+#endif
     /*
      * Hookup offscreen pixmaps
      */

commit 1707aac08a53e42b840cfed4f9bbd2ceccaace96
Author: Julien Cristau <jcristau@debian.org>
Date:   Sun Sep 21 20:37:45 2008 +0200

    02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr
    
    It doesn't work correctly.

diff --git a/debian/changelog b/debian/changelog
index 693c505..15d963a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.5.0-2) UNRELEASED; urgency=low
+
+  * 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't
+    work correctly.
+
+ -- Julien Cristau <jcristau@debian.org>  Sun, 21 Sep 2008 20:37:12 +0200
+
 xorg-server (2:1.5.0-1) experimental; urgency=low
 
   * New upstream release.
diff --git a/debian/patches/02_Disable-DRI-in-Xephyr.patch b/debian/patches/02_Disable-DRI-in-Xephyr.patch
new file mode 100644
index 0000000..63c7e3f
--- /dev/null
+++ b/debian/patches/02_Disable-DRI-in-Xephyr.patch
@@ -0,0 +1,34 @@
+From 1433e973251745120cac5ad5d360361f99937e8a Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Sun, 21 Sep 2008 20:28:16 +0200
+Subject: [PATCH] Disable DRI in Xephyr
+
+Doesn't work right, see fdo#16955
+---
+ configure.ac |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0262274..3ca285a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1922,11 +1922,11 @@ if test "$KDRIVE" = yes; then
+         XEPHYR=$xephyr
+     fi
+     XEPHYR_DRI=no
+-    if test x$XEPHYR = xyes -a x$DRI = xyes && test "x$GLX" = xyes; then
+-        XEPHYR_DRI=yes
+-        XEPHYR_DRI_LIBS=-lGL
+-        AC_SUBST(XEPHYR_DRI_LIBS)
+-    fi
++#    if test x$XEPHYR = xyes -a x$DRI = xyes && test "x$GLX" = xyes; then
++#        XEPHYR_DRI=yes
++#        XEPHYR_DRI_LIBS=-lGL
++#        AC_SUBST(XEPHYR_DRI_LIBS)
++#    fi
+     if test x$XEPHYR_DRI = xyes ; then
+         AC_DEFINE(XEPHYR_DRI,1,[enable DRI extension in xephyr])
+     fi
+-- 
+1.5.6.5
+
diff --git a/debian/patches/series b/debian/patches/series
index 93fe4ab..93f18a2 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 001_fedora_extramodes.patch
+02_Disable-DRI-in-Xephyr.patch
 #06_use_proc_instead_of_sysfs_for_pci_domains.diff
 13_debian_add_xkbpath_env_variable.diff

commit 37876602957924c7cff759a800eddd574ee2385a
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Wed Sep 17 15:48:56 2008 -0700

    Conditionalize Composite-based backing store on pScreen->backingStoreSupport.

diff --git a/composite/compinit.c b/composite/compinit.c
index 49b2044..3bf77e0 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -119,7 +119,8 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
     pScreen->ChangeWindowAttributes = cs->ChangeWindowAttributes;
     ret = pScreen->ChangeWindowAttributes(pWin, mask);
 
-    if (ret && (mask & CWBackingStore)) {
+    if (ret && (mask & CWBackingStore) &&
+	    pScreen->backingStoreSupport != NotUseful) {
 	if (pWin->backingStore != NotUseful) {
 	    compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
 	    pWin->backStorage = TRUE;

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.

diff --git a/debian/changelog b/debian/changelog
index 5842698..22c67ab 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ xorg-server (2:1.4.2-6) UNRELEASED; 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.
 
  -- Julien Cristau <jcristau@debian.org>  Mon, 01 Sep 2008 19:21:18 +0200
 
diff --git a/debian/patches/52_xevie-swap-replies.diff b/debian/patches/52_xevie-swap-replies.diff
new file mode 100644
index 0000000..0c2fabf
--- /dev/null
+++ b/debian/patches/52_xevie-swap-replies.diff
@@ -0,0 +1,110 @@
+From b5cdcfa55c399e83d51242e93d4f25d8bc4fec1f Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Mon, 1 Sep 2008 19:45:30 +0200
+Subject: [PATCH] Xevie: swap replies as necessary
+
+---
+ Xext/xevie.c |   27 +++++++++++++++++++++++++++
+ 1 files changed, 27 insertions(+), 0 deletions(-)
+
+Index: xorg-server/Xext/xevie.c
+===================================================================
+--- xorg-server.orig/Xext/xevie.c
++++ xorg-server/Xext/xevie.c
+@@ -167,6 +167,7 @@
+ int ProcQueryVersion (register ClientPtr client)
+ {
+     xXevieQueryVersionReply rep;
++    int n;
+ 
+     REQUEST_SIZE_MATCH (xXevieQueryVersionReq);
+     rep.type = X_Reply;
+@@ -174,6 +175,12 @@
+     rep.sequence_number = client->sequence;
+     rep.server_major_version = XEVIE_MAJOR_VERSION;
+     rep.server_minor_version = XEVIE_MINOR_VERSION;
++    if (client->swapped) {
++	swaps(&rep.sequence_number, n);
++	swapl(&rep.length, n);
++	swaps(&rep.server_major_version, n);
++	swaps(&rep.server_minor_version, n);
++    }
+     WriteToClient (client, sizeof (xXevieQueryVersionReply), (char *)&rep);
+     return client->noClientException;
+ }
+@@ -182,6 +189,7 @@
+ int ProcStart (register ClientPtr client)
+ {
+     xXevieStartReply rep;
++    int n;
+ 
+     REQUEST_SIZE_MATCH (xXevieStartReq);
+     rep.pad1 = 0;
+@@ -216,6 +224,10 @@
+     rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
++    if (client->swapped) {
++	swaps(&rep.sequence_number, n);
++	swapl(&rep.length, n);
++    }
+     WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
+     return client->noClientException;
+ }
+@@ -224,6 +236,7 @@
+ int ProcEnd (register ClientPtr client)
+ {
+     xXevieEndReply rep;
++    int n;
+ 
+     if (xevieFlag) {
+         if (client->index != xevieClientIndex)
+@@ -236,6 +249,10 @@
+     rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
++    if (client->swapped) {
++	swaps(&rep.sequence_number, n);
++	swapl(&rep.length, n);
++    }
+     WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
+     return client->noClientException;
+ }
+@@ -247,6 +264,7 @@
+     xXevieSendReply rep;
+     xEvent *xE;
+     static unsigned char lastDetail = 0, lastType = 0;
++    int n;
+ 
+     if (client->index != xevieClientIndex)
+         return BadAccess;
+@@ -255,6 +273,10 @@
+     rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
++    if (client->swapped) {
++	swaps(&rep.sequence_number, n);
++	swapl(&rep.length, n);
++    }
+     WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
+ 
+     switch(xE->u.u.type) {
+@@ -292,6 +314,7 @@
+ {
+     REQUEST (xXevieSelectInputReq);
+     xXevieSelectInputReply rep;
++    int n;
+ 
+     if (client->index != xevieClientIndex)
+         return BadAccess;
+@@ -300,6 +323,10 @@
+     rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
++    if (client->swapped) {
++	swaps(&rep.sequence_number, n);
++	swapl(&rep.length, n);
++    }
+     WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);
+     return client->noClientException;
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 4d71c53..55ff4fa 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -25,6 +25,7 @@
 49_x86emu_int1a_fix.diff
 50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch
 51_xevie-length.diff
+52_xevie-swap-replies.diff
 91_ttf2pt1
 91_ttf2pt1_updates
 92_xprint-security-holes-fix.patch

commit c68fab55b468a46b4713e47d0a1aac7df0a0b019
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Sep 1 19:23:15 2008 +0200

    Xevie: always set rep.length to 0 (closes: #497337).
    
    Thanks, Thorvald Natvig!

diff --git a/debian/changelog b/debian/changelog
index ac9b26b..5842698 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
+
+  * Xevie: always set rep.length to 0 (closes: #497337).  Thanks, Thorvald
+    Natvig!
+
+ -- Julien Cristau <jcristau@debian.org>  Mon, 01 Sep 2008 19:21:18 +0200
+
 xorg-server (2:1.4.2-5) unstable; urgency=low
 
   * Don't pretend we support randr 1.2 when queried by swapped clients.  The
diff --git a/debian/patches/51_xevie-length.diff b/debian/patches/51_xevie-length.diff
new file mode 100644
index 0000000..eb8d4a2
--- /dev/null
+++ b/debian/patches/51_xevie-length.diff
@@ -0,0 +1,42 @@
+From: Thorvald Natvig <thorvald@natvig.com>
+Subject: fix XEvIE
+
+For all the replys but ProcXevieQueryVersion, the rep.length field isn't
+set to zero, which makes the client misbehave when it gets the reply.
+
+Index: xorg-server/Xext/xevie.c
+===================================================================
+--- xorg-server.orig/Xext/xevie.c
++++ xorg-server/Xext/xevie.c
+@@ -213,6 +213,7 @@
+     
+     xevieModifiersOn = FALSE;
+ 
++    rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
+     WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
+@@ -232,6 +233,7 @@
+         XevieEnd(xevieClientIndex);
+     }
+ 
++    rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
+     WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
+@@ -250,6 +252,7 @@
+         return BadAccess;
+ 
+     xE = (xEvent *)&stuff->event;
++    rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
+     WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
+@@ -294,6 +297,7 @@
+         return BadAccess;
+ 
+     xevieMask = (long)stuff->event_mask;
++    rep.length = 0;
+     rep.type = X_Reply;
+     rep.sequence_number = client->sequence;
+     WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);
diff --git a/debian/patches/series b/debian/patches/series
index c6c3dbc..4d71c53 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -24,6 +24,7 @@
 48_xaa_nooffscreenpixmaps.diff
 49_x86emu_int1a_fix.diff
 50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch
+51_xevie-length.diff
 91_ttf2pt1
 91_ttf2pt1_updates
 92_xprint-security-holes-fix.patch


Reply to: