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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> Sun, 21 Sep 2008 20:37:12 +0200 + -- Julien Cristau <[EMAIL PROTECTED]> Wed, 24 Sep 2008 17:49:18 +0200 xorg-server (2:1.5.0-1) experimental; urgency=low commit dfed9e40315aa0675f433740088a65cb96954abe Author: Julien Cristau <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> +Date: Tue Sep 23 14:51:33 2008 -0400 + + xserver 1.5.1 + +commit 68c575cb73fd6ff6c9c0ce29a3d8105da44abfcc +Author: Adam Jackson <[EMAIL PROTECTED]> +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 <[EMAIL PROTECTED]> +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 <[EMAIL PROTECTED]> +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 <[EMAIL PROTECTED]> +Date: Wed Sep 17 15:48:56 2008 -0700 + + Conditionalize Composite-based backing store on pScreen->backingStoreSupport. + commit 05fb2f9e1249d0b91bf4318cec4fb309217adff4 Author: Adam Jackson <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> +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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> Mon, 01 Sep 2008 19:21:18 +0200 + -- Julien Cristau <[EMAIL PROTECTED]> Mon, 15 Sep 2008 01:21:13 +0200 xorg-server (2:1.4.2-5) unstable; urgency=low commit 13f68e9414dba88af77fd96cdd3507a09a394cf8 Author: Julien Cristau <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> Mon, 01 Sep 2008 19:21:18 +0200 commit 3f1d43e35cdb29b2fbd39c30ee31c12280cb51ec Author: Paulo Cesar Pereira de Andrade <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> (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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> +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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> +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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]