ChangeLog | 86 +++++++++ GL/glx/glxdri.c | 8 Xext/security.c | 2 Xext/shm.c | 12 - composite/compwindow.c | 25 ++ debian/changelog | 9 - debian/control | 88 +++++----- debian/patches/42_dont_break_grab_and_focus_for_window_when_redirecting.diff | 33 --- debian/patches/series | 1 debian/rules | 2 dix/window.c | 3 hw/xfree86/modes/xf86Rotate.c | 4 12 files changed, 181 insertions(+), 92 deletions(-)
New commits: commit e82c44d7a62d5c22324888b64c6f1246fd2559ea Author: Julien Cristau <[EMAIL PROTECTED]> Date: Fri Mar 14 14:52:53 2008 +0100 Prepare changelog for upload diff --git a/debian/changelog b/debian/changelog index e483d6c..e3824db 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xorg-server (2:1.4.1~git20080131-2) UNRELEASED; urgency=low +xorg-server (2:1.4.1~git20080131-2) unstable; urgency=low [ Brice Goglin ] * Add 46_reduce_wakeups_from_smart_scheduler.patch to reduce @@ -26,7 +26,7 @@ xorg-server (2:1.4.1~git20080131-2) UNRELEASED; urgency=low [ David Nusinow ] * Add 11_dont_crash_on_bad_dri_mode. See bugzilla #13860 - -- David Nusinow <[EMAIL PROTECTED]> Sun, 02 Mar 2008 10:02:40 -0500 + -- Julien Cristau <[EMAIL PROTECTED]> Fri, 14 Mar 2008 15:18:16 +0100 xorg-server (2:1.4.1~git20080131-1) unstable; urgency=low commit 6894d3582bc89b3466df9732d9bff529c07d0258 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Fri Mar 14 15:16:36 2008 +0100 Don't build xprint, because it needs NEW processing. I want to get this in sid. diff --git a/debian/changelog b/debian/changelog index 45e2235..e483d6c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,7 +12,6 @@ xorg-server (2:1.4.1~git20080131-2) UNRELEASED; urgency=low XSERVER_LIBS as expected in configure.ac from master (see commit a02db0d500cac20d0f0f107d27c064a175018421). Delete 94_xprint_XSERVER_LIBS when we upgrade to xserver 1.5. - Closes: #448970. [ Julien Cristau ] * Re-enable patch 51_xkb-and-loathing.diff: ignore SIGALRM around calls to @@ -22,6 +21,7 @@ xorg-server (2:1.4.1~git20080131-2) UNRELEASED; urgency=low * Pull from upstream server-1.4-branch as of March 14th. * 42_dont_break_grab_and_focus_for_window_when_redirecting.diff removed, applied upstream. + * Don't build xprint just yet, because it needs NEW processing. [ David Nusinow ] * Add 11_dont_crash_on_bad_dri_mode. See bugzilla #13860 diff --git a/debian/control b/debian/control index 1c00a3d..fb9bd70 100644 --- a/debian/control +++ b/debian/control @@ -200,50 +200,50 @@ Description: nested X server # . # This package is built from the X.org xserver module. -Package: xprint -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, xprint-common, libxfont1 (>= 1:1.1) -Recommends: xprint-utils -Conflicts: xprt (<= 4.3.0.dfsg.1-10) -Description: X11 print system (binary) - Xprint is an advanced printing system which enables X11 applications - to use devices like printers, fax or create documents in formats like - PostScript, PDF, PCL, etc. - . - This package provides Xprt, the Xprint server compiled from - xprint.mozdev.org, an X.org subproject. Xprint provides superior support - for printing from Mozilla, including non-Latin characters and MathML. - TrueType fonts are supported. - . - Xprint uses ttf2pt1 internally for some font support. - . - More information about X.Org can be found at: - <URL:http://www.X.org> - <URL:http://xorg.freedesktop.org> - <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> - . - This package is built from the X.org xserver module. - -Package: xprint-common -Architecture: all -Depends: xbase-clients, xfonts-encodings, x11-common (>= 1:7.0.12), ${shlibs:Depends}, ${misc:Depends} -Recommends: xprint, xfonts-base -Conflicts: xprt-common -Replaces: xprt-common -Description: Xprint - the X11 print system (configuration files) - Xprint is an advanced printing system which enables X11 applications - to use devices like printers, FAX or create documents in formats like - PostScript, PDF, PCL, etc. - . - This package provides the configuration and Postscript definition files - required to run Xprt, the Xprint server. Xprt is provided by xprint. - . - More information about X.Org can be found at: - <URL:http://www.X.org> - <URL:http://xorg.freedesktop.org> - <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> - . - This package is built from the X.org xserver module. +#Package: xprint +#Architecture: any +#Depends: ${shlibs:Depends}, ${misc:Depends}, xprint-common, libxfont1 (>= 1:1.1) +#Recommends: xprint-utils +#Conflicts: xprt (<= 4.3.0.dfsg.1-10) +#Description: X11 print system (binary) +# Xprint is an advanced printing system which enables X11 applications +# to use devices like printers, fax or create documents in formats like +# PostScript, PDF, PCL, etc. +# . +# This package provides Xprt, the Xprint server compiled from +# xprint.mozdev.org, an X.org subproject. Xprint provides superior support +# for printing from Mozilla, including non-Latin characters and MathML. +# TrueType fonts are supported. +# . +# Xprint uses ttf2pt1 internally for some font support. +# . +# More information about X.Org can be found at: +# <URL:http://www.X.org> +# <URL:http://xorg.freedesktop.org> +# <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> +# . +# This package is built from the X.org xserver module. +# +#Package: xprint-common +#Architecture: all +#Depends: xbase-clients, xfonts-encodings, x11-common (>= 1:7.0.12), ${shlibs:Depends}, ${misc:Depends} +#Recommends: xprint, xfonts-base +#Conflicts: xprt-common +#Replaces: xprt-common +#Description: Xprint - the X11 print system (configuration files) +# Xprint is an advanced printing system which enables X11 applications +# to use devices like printers, FAX or create documents in formats like +# PostScript, PDF, PCL, etc. +# . +# This package provides the configuration and Postscript definition files +# required to run Xprt, the Xprint server. Xprt is provided by xprint. +# . +# More information about X.Org can be found at: +# <URL:http://www.X.org> +# <URL:http://xorg.freedesktop.org> +# <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> +# . +# This package is built from the X.org xserver module. Package: xserver-xorg-core-dbg Architecture: any diff --git a/debian/rules b/debian/rules index 73adc86..ab4e4f7 100755 --- a/debian/rules +++ b/debian/rules @@ -35,7 +35,7 @@ endif build_xfbdev = --disable-xfbdev #endif -BUILD_XPRINT = true +BUILD_XPRINT = false ifeq ($(BUILD_XPRINT), true) confflags += --enable-xprint else commit c7968c774433d17786b1db5a86a5875da1678040 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Fri Mar 14 14:47:06 2008 +0100 Pull from upstream server-1.4-branch as of March 14th. - 42_dont_break_grab_and_focus_for_window_when_redirecting.diff removed, applied upstream - changelogs updated diff --git a/ChangeLog b/ChangeLog index fc6cf38..7dffaf6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,89 @@ +commit a65d4aed06acd839fb21153f74144498abda3e18 +Author: Alan Hourihane <[EMAIL PROTECTED]> +Date: Wed Feb 27 16:49:34 2008 +0000 + + Fix context sharing between direct/indirect contexts + +commit 44f46bfb981ca69515dafc520f62f33654711194 +Author: Matthias Hopf <[EMAIL PROTECTED]> +Date: Mon Jan 21 16:13:21 2008 +0100 + + CVE-2007-6429: Always test for size+offset wrapping. + +commit bcbfd619f8da888224afd80ee3a2db7d500523eb +Author: Kristian Høgsberg <[EMAIL PROTECTED]> +Date: Wed Jan 16 20:24:11 2008 -0500 + + Don't break grab and focus state for a window when redirecting it. + + Composite uses an unmap/map cycle to trigger backing pixmap allocation + and cliprect recomputation when a window is redirected or unredirected. + To avoid protocol visible side effects, map and unmap events are + disabled temporarily. However, when a window is unmapped it is also + removed from grabs and loses focus, but these state changes are not + disabled. + + This change supresses the unmap side effects during the composite + unmap/map cycle and fixes this bug: + + http://bugzilla.gnome.org/show_bug.cgi?id=488264 + + where compiz would cause gnome-screensaver to lose its grab when + compiz unredirects the fullscreen lock window. + +commit dc30ade6496c7cc24e38c419e229159525fe042f +Author: Maarten Maathuis <[EMAIL PROTECTED]> +Date: Sun Feb 17 18:47:28 2008 +0100 + + Fix rotation for multi-monitor situation. + + - The (x,y)-coordinates of the crtc were not being passed as xFixed values, which made it an obscure bug to find. + - Fix bug #13787. + (cherry picked from commit a48cc88ea2674c28b69b8d738b168cbafcf4001f) + +commit 3db5930c61aeb849de3b21e7ba0d86d3c0cf72bb +Author: Maarten Maathuis <[EMAIL PROTECTED]> +Date: Sun Feb 17 11:21:01 2008 +0100 + + Resize composite overlay window when the root window changes. + + - This allows some compositing managers to work, even after randr12 has changed the root window size. + - Thanks to ajax for figuring out the best place to put this. + - Example: + - xf86RandR12SetMode() calls EnableDisableFBAccess(). + - That calls xf86SetRootClip() which in turn calls ResizeChildrenWinSize(). + - The final step is the call to PositionWindow(). + (cherry picked from commit 70c0592a97c7dc9db0576d32b3bdbe4766520509) + +commit 74b40bba327a2e97780e8e3f995f784add2d6231 +Author: Eamon Walsh <[EMAIL PROTECTED]> +Date: Thu Feb 14 19:47:44 2008 -0500 + + security: Fix for Bug #14480: untrusted access broken in 7.3. + +commit bc72ef3a159efd67067322c043bba444869dc356 +Author: Peter Hutterer <[EMAIL PROTECTED]> +Date: Wed Jan 30 10:39:54 2008 +1030 + + xkb: don't update LEDs if they don't exist. (Bug #13961) + + In some weird cases we call this function when there is no SrvLedInfo on the + device. And it turns out null-pointer dereferences are bad. + + X.Org Bug 13961 <http://bugs.freedesktop.org/show_bug.cgi?id=13961> + (cherry picked from commit d954f9c80348de294602d931d387e5cd1ef4b9a5) + +commit e98027c3ac7195fec665ef393d980b02870ca1b8 +Author: Peter Hutterer <[EMAIL PROTECTED]> +Date: Tue Dec 18 13:57:07 2007 +1030 + + dix: set the correct number of valuators in valuator events. + + (first_valuator + num_valuators) must never be larger than the number of axes, + otherwise DIX freaks out. And from looking at libXI, anything larger than 6 is + wrong too. + (cherry picked from commit 9f6ae61ad12cc2813d04405458e1ca5aed8a539e) + commit b6d4cdf64f43ae805beada6122c8be2ed138742c Author: Adam Jackson <[EMAIL PROTECTED]> Date: Fri Jan 18 14:41:20 2008 -0500 diff --git a/debian/changelog b/debian/changelog index 0ed3d77..45e2235 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,9 @@ xorg-server (2:1.4.1~git20080131-2) UNRELEASED; urgency=low Popen()/Pclose() to fix a hang when opening menus in OpenOffice.org (once again closes: #433131) * Refresh all patches to make patch-audit happy. + * Pull from upstream server-1.4-branch as of March 14th. + * 42_dont_break_grab_and_focus_for_window_when_redirecting.diff removed, + applied upstream. [ David Nusinow ] * Add 11_dont_crash_on_bad_dri_mode. See bugzilla #13860 diff --git a/debian/patches/42_dont_break_grab_and_focus_for_window_when_redirecting.diff b/debian/patches/42_dont_break_grab_and_focus_for_window_when_redirecting.diff deleted file mode 100644 index 35951e0..0000000 --- a/debian/patches/42_dont_break_grab_and_focus_for_window_when_redirecting.diff +++ /dev/null @@ -1,33 +0,0 @@ -commit a6a7fadbb03ee99312dfb15ac478ab3c414c1c0b -Author: Kristian Høgsberg <[EMAIL PROTECTED]> -Date: Wed Jan 16 20:24:11 2008 -0500 - - Don't break grab and focus state for a window when redirecting it. - - Composite uses an unmap/map cycle to trigger backing pixmap allocation - and cliprect recomputation when a window is redirected or unredirected. - To avoid protocol visible side effects, map and unmap events are - disabled temporarily. However, when a window is unmapped it is also - removed from grabs and loses focus, but these state changes are not - disabled. - - This change supresses the unmap side effects during the composite - unmap/map cycle and fixes this bug: - - http://bugzilla.gnome.org/show_bug.cgi?id=488264 - - where compiz would cause gnome-screensaver to lose its grab when - compiz unredirects the fullscreen lock window. - ---- xorg-server.orig/dix/window.c -+++ xorg-server/dix/window.c -@@ -3023,7 +3023,8 @@ - } - #endif - (* Unrealize)(pChild); -- DeleteWindowFromAnyEvents(pChild, FALSE); -+ if (MapUnmapEventsEnabled(pWin)) -+ DeleteWindowFromAnyEvents(pChild, FALSE); - if (pChild->viewable) - { - #ifdef DO_SAVE_UNDERS diff --git a/debian/patches/series b/debian/patches/series index 085689a..d1576ad 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -13,7 +13,6 @@ 21_glx_align_fixes.patch 40_default_dpi_96.patch 41_vbe_filter_less.diff -42_dont_break_grab_and_focus_for_window_when_redirecting.diff 43_allow_override_BIOS_EDID_preferred_mode.diff 44_preferredmode_infinite_loop.diff 45_only_XF86_APM_CAPABILITY_CHANGED_for_video_change_acpi_events.diff commit a65d4aed06acd839fb21153f74144498abda3e18 Author: Alan Hourihane <[EMAIL PROTECTED]> Date: Wed Feb 27 16:49:34 2008 +0000 Fix context sharing between direct/indirect contexts diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c index 685683d..09abca3 100644 --- a/GL/glx/glxdri.c +++ b/GL/glx/glxdri.c @@ -598,6 +598,9 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen, else sharePrivate = NULL; + if (baseShareContext && baseShareContext->isDirect) + return NULL; + context = xalloc(sizeof *context); if (context == NULL) return NULL; @@ -617,6 +620,11 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen, 0, /* render type */ sharePrivate, &context->driContext); + + if (!context->driContext.private) { + xfree(context); + return NULL; + } context->driContext.mode = modes; commit 44f46bfb981ca69515dafc520f62f33654711194 Author: Matthias Hopf <[EMAIL PROTECTED]> Date: Mon Jan 21 16:13:21 2008 +0100 CVE-2007-6429: Always test for size+offset wrapping. diff --git a/Xext/shm.c b/Xext/shm.c index 6f99e90..376f123 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -753,10 +753,10 @@ CreatePmap: if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) { if (size < width * height) return BadAlloc; - /* thankfully, offset is unsigned */ - if (stuff->offset + size < size) - return BadAlloc; } + /* thankfully, offset is unsigned */ + if (stuff->offset + size < size) + return BadAlloc; VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client); @@ -1098,10 +1098,10 @@ CreatePmap: if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) { if (size < width * height) return BadAlloc; - /* thankfully, offset is unsigned */ - if (stuff->offset + size < size) - return BadAlloc; } + /* thankfully, offset is unsigned */ + if (stuff->offset + size < size) + return BadAlloc; VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client); pMap = (*shmFuncs[pDraw->pScreen->myNum]->CreatePixmap)( commit bcbfd619f8da888224afd80ee3a2db7d500523eb Author: Kristian Høgsberg <[EMAIL PROTECTED]> Date: Wed Jan 16 20:24:11 2008 -0500 Don't break grab and focus state for a window when redirecting it. Composite uses an unmap/map cycle to trigger backing pixmap allocation and cliprect recomputation when a window is redirected or unredirected. To avoid protocol visible side effects, map and unmap events are disabled temporarily. However, when a window is unmapped it is also removed from grabs and loses focus, but these state changes are not disabled. This change supresses the unmap side effects during the composite unmap/map cycle and fixes this bug: http://bugzilla.gnome.org/show_bug.cgi?id=488264 where compiz would cause gnome-screensaver to lose its grab when compiz unredirects the fullscreen lock window. diff --git a/dix/window.c b/dix/window.c index be4ea2c..961c02a 100644 --- a/dix/window.c +++ b/dix/window.c @@ -3023,7 +3023,8 @@ UnrealizeTree( } #endif (* Unrealize)(pChild); - DeleteWindowFromAnyEvents(pChild, FALSE); + if (MapUnmapEventsEnabled(pWin)) + DeleteWindowFromAnyEvents(pChild, FALSE); if (pChild->viewable) { #ifdef DO_SAVE_UNDERS commit dc30ade6496c7cc24e38c419e229159525fe042f Author: Maarten Maathuis <[EMAIL PROTECTED]> Date: Sun Feb 17 18:47:28 2008 +0100 Fix rotation for multi-monitor situation. - The (x,y)-coordinates of the crtc were not being passed as xFixed values, which made it an obscure bug to find. - Fix bug #13787. (cherry picked from commit a48cc88ea2674c28b69b8d738b168cbafcf4001f) diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c index 380478f..dd0e659 100644 --- a/hw/xfree86/modes/xf86Rotate.c +++ b/hw/xfree86/modes/xf86Rotate.c @@ -579,9 +579,9 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation) } else { - PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, crtc->x, crtc->y); + PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, F(crtc->x), F(crtc->y)); PictureTransformIsInverse ("offset", &crtc_to_fb, &fb_to_crtc); - + /* * these are the size of the shadow pixmap, which * matches the mode, not the pre-rotated copy in the commit 3db5930c61aeb849de3b21e7ba0d86d3c0cf72bb Author: Maarten Maathuis <[EMAIL PROTECTED]> Date: Sun Feb 17 11:21:01 2008 +0100 Resize composite overlay window when the root window changes. - This allows some compositing managers to work, even after randr12 has changed the root window size. - Thanks to ajax for figuring out the best place to put this. - Example: - xf86RandR12SetMode() calls EnableDisableFBAccess(). - That calls xf86SetRootClip() which in turn calls ResizeChildrenWinSize(). - The final step is the call to PositionWindow(). (cherry picked from commit 70c0592a97c7dc9db0576d32b3bdbe4766520509) diff --git a/composite/compwindow.c b/composite/compwindow.c index bfd2946..33192ad 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -165,6 +165,29 @@ compCheckRedirect (WindowPtr pWin) return TRUE; } +static int +updateOverlayWindow(ScreenPtr pScreen) +{ + CompScreenPtr cs; + WindowPtr pWin; /* overlay window */ + XID vlist[2]; + + cs = GetCompScreen(pScreen); + if ((pWin = cs->pOverlayWin) != NULL) { + if ((pWin->drawable.width == pScreen->width) && + (pWin->drawable.height == pScreen->height)) + return Success; + + /* Let's resize the overlay window. */ + vlist[0] = pScreen->width; + vlist[1] = pScreen->height; + return ConfigureWindow(pWin, CWWidth | CWHeight, vlist, wClient(pWin)); + } + + /* Let's be on the safe side and not assume an overlay window is always allocated. */ + return Success; +} + Bool compPositionWindow (WindowPtr pWin, int x, int y) { @@ -203,6 +226,8 @@ compPositionWindow (WindowPtr pWin, int x, int y) cs->PositionWindow = pScreen->PositionWindow; pScreen->PositionWindow = compPositionWindow; compCheckTree (pWin->drawable.pScreen); + if (updateOverlayWindow(pScreen) != Success) + ret = FALSE; return ret; } commit 74b40bba327a2e97780e8e3f995f784add2d6231 Author: Eamon Walsh <[EMAIL PROTECTED]> Date: Thu Feb 14 19:47:44 2008 -0500 security: Fix for Bug #14480: untrusted access broken in 7.3. diff --git a/Xext/security.c b/Xext/security.c index e9d48c9..14ad354 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -1014,7 +1014,7 @@ CALLBACK(SecurityCheckResourceIDAccess) } else /* server-owned resource - probably a default colormap or root window */ { - if (RT_WINDOW == rtype || RC_DRAWABLE == rtype) + if (RC_DRAWABLE & rtype) { switch (reqtype) { /* the following operations are allowed on root windows */ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]