Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=xorg73.git;a=commitdiff;h=2c249b2dda1925565e2790cd563fb82521a04a4c
commit 2c249b2dda1925565e2790cd563fb82521a04a4c Author: crazy <[EMAIL PROTECTED]> Date: Sat Jan 19 10:41:21 2008 +0100 xorg-server-1.4.0.90-2-i686 * added backports patches from 1.4-branch diff --git a/source/x11/xorg-server/FrugalBuild b/source/x11/xorg-server/FrugalBuild index 3a73663..d2e8764 100644 --- a/source/x11/xorg-server/FrugalBuild +++ b/source/x11/xorg-server/FrugalBuild @@ -29,6 +29,15 @@ source=([EMAIL PROTECTED] \ http://$_F_sourceforge_mirror.dl.sourceforge.net/sourceforge/mesa3d/MesaLib-$mesaver.tar.bz2 \ ftp://ftp.freedesktop.org/pub/xorg/X11R7.3/patches/xorg-xserver-1.4-multiple-overflows.diff \ revert-CVE-2007-6429.patch \ + bug13308-Verify-and-reject-obviously-broken-modes.patch \ + fix-bgPixel-unsigned-long-issues.patch \ + OS-Don-t-leak-connection-translation-table.patch \ + KDrive-Xephyr-Don-t-leak-screen-damage-structure.patch \ + Input-Don-t-reinit-devices.patch \ + bug13511.patch \ + OS-IO-Zero-out-client-buffers.patch \ + XKB-XkbCopyKeymap-Don-t-leak-all-the-sections.patch \ + Xephyr-One-time-keyboard-leak-fix.patch \ 01-kernel-headers-fix.patch \ 02-access_c_skip_null_addresses.patch \ 03-black-background.patch \ @@ -47,6 +56,15 @@ sha1sums=('7c492ac32bd83b521f5c016e4728fccf9cba55db' \ 'd16eaeb1d9d95d11d3b6d289b1ba87108b88da90' \ 'b3c9013aa6abc30fabd8f6a85e427f5fd6e6ef6c' \ '70953105acc839ca4e377b9ba6f8ea5589f8e46b' \ + '838c1144516368be4b15ab1b22d1a557fc8261ba' \ + '03313ab37223329913354321449d7e818c69c937' \ + '4d35fe70d5af830ac732fe74260d8483c390461c' \ + 'a0c51b280ef74f64a4b4e885d2476fc6600197a4' \ + 'ee204c0d14f483bd2b3cd81b7c935c1b8e33b10e' \ + 'cc156003c1e8787b04f6949d4e12f859e939c5e6' \ + '3a65997e9bcf16614f6b67498d7bfd5cf1bc9299' \ + '553af71b1f799281c6f9ab2537107f017774e9fc' \ + '12b0b027976a64586ad5f014cdc796b93eaa301b' \ 'f31702e0029b2d68018598e73ed55c4d6c58367b' \ '859b98a4049400be152032fc09ceff2afe9e6dcf' \ '863ad92892785c3785b122bf54d0def4d4d2732c' \ @@ -130,9 +148,10 @@ build() { ## Fpatch no-aiglx.patch ## workaround ATI's closes source c*** ## see https://bugs.freedesktop.org/show_bug.cgi?id=9367 - ############## - # DISABLED AT 1.4 (we will see whats up ## -# Fpatch bug-9367.patch + ## + ## DISABLED for 1.4 (we will see whats up ) + #Fpatch bug-9367.patch + ############# Fpatch 1.4-fix-xephyr-link.patch Fpatch 1.4-fix-dmx-build.patch Fpatch 1.4-fix-dmx-link.patch @@ -141,7 +160,18 @@ build() { Fpatch xorg-xserver-1.4-multiple-overflows.diff ## revert CVE-2007-6429 untill that issue is fixed in a way to not break ## gazillons other applications + Fmessage "Reverting CVE-2007-6429.patch for now" patch -p1 -R -i ../revert-CVE-2007-6429.patch || Fdie + ## fixes from 1.4-branch + Fpatch bug13308-Verify-and-reject-obviously-broken-modes.patch + Fpatch fix-bgPixel-unsigned-long-issues.patch + Fpatch OS-Don-t-leak-connection-translation-table.patch + Fpatch KDrive-Xephyr-Don-t-leak-screen-damage-structure.patch + Fpatch Input-Don-t-reinit-devices.patch + Fpatch bug13511.patch + Fpatch OS-IO-Zero-out-client-buffers.patch + Fpatch XKB-XkbCopyKeymap-Don-t-leak-all-the-sections.patch + Fpatch Xephyr-One-time-keyboard-leak-fix.patch ## GCC 4.2.0 bug do **NOT** remove this hack or it will kill your box!! ## http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30052 echo 'CFLAGS = @CFLAGS@ -O0' >> hw/xfree86/scanpci/Makefile.am diff --git a/source/x11/xorg-server/Input-Don-t-reinit-devices.patch b/source/x11/xorg-server/Input-Don-t-reinit-devices.patch new file mode 100644 index 0000000..9afdb4e --- /dev/null +++ b/source/x11/xorg-server/Input-Don-t-reinit-devices.patch @@ -0,0 +1,29 @@ +From 102c012c206cbb3bbf0fa5b0c8f0ce2ce9bba72a Mon Sep 17 00:00:00 2001 +From: Daniel Stone <[EMAIL PROTECTED]> +Date: Fri, 28 Dec 2007 15:49:50 +0200 +Subject: [PATCH] Input: Don't reinit devices + +If a device is already initialised (i.e. the virtual core devices) during +IASD, don't init them again. This fixes a leak. +(cherry picked from commit 1f6015c8fe62c28cfaa82cc855b5b9c28fd34607) +--- + dix/devices.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/dix/devices.c b/dix/devices.c +index 287d730..f6f3c8e 100644 +--- a/dix/devices.c ++++ b/dix/devices.c +@@ -473,7 +473,8 @@ InitAndStartDevices(void) + + for (dev = inputInfo.off_devices; dev; dev = dev->next) { + DebugF("(dix) initialising device %d\n", dev->id); +- ActivateDevice(dev); ++ if (!dev->inited) ++ ActivateDevice(dev); + } + for (dev = inputInfo.off_devices; dev; dev = next) + { +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/KDrive-Xephyr-Don-t-leak-screen-damage-structure.patch b/source/x11/xorg-server/KDrive-Xephyr-Don-t-leak-screen-damage-structure.patch new file mode 100644 index 0000000..c8a321c --- /dev/null +++ b/source/x11/xorg-server/KDrive-Xephyr-Don-t-leak-screen-damage-structure.patch @@ -0,0 +1,25 @@ +From a304fc1d4a7062f65161ef8748fd358639ec73de Mon Sep 17 00:00:00 2001 +From: Daniel Stone <[EMAIL PROTECTED]> +Date: Fri, 28 Dec 2007 15:48:57 +0200 +Subject: [PATCH] KDrive: Xephyr: Don't leak screen damage structure + (cherry picked from commit 0b03d97a244540824c922c300adbc3d3ae4855d5) + +--- + hw/kdrive/ephyr/ephyr.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c +index e8001df..27165a5 100644 +--- a/hw/kdrive/ephyr/ephyr.c ++++ b/hw/kdrive/ephyr/ephyr.c +@@ -394,6 +394,7 @@ ephyrUnsetInternalDamage (ScreenPtr pScreen) + + pPixmap = (*pScreen->GetScreenPixmap) (pScreen); + DamageUnregister (&pPixmap->drawable, scrpriv->pDamage); ++ DamageDestroy (scrpriv->pDamage); + + RemoveBlockAndWakeupHandlers (ephyrInternalDamageBlockHandler, + ephyrInternalDamageWakeupHandler, +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/OS-Don-t-leak-connection-translation-table.patch b/source/x11/xorg-server/OS-Don-t-leak-connection-translation-table.patch new file mode 100644 index 0000000..351f884 --- /dev/null +++ b/source/x11/xorg-server/OS-Don-t-leak-connection-translation-table.patch @@ -0,0 +1,27 @@ +From 38d8cfaaff0ae6273d9e921aae08b2706355f0d2 Mon Sep 17 00:00:00 2001 +From: Daniel Stone <[EMAIL PROTECTED]> +Date: Fri, 28 Dec 2007 15:48:25 +0200 +Subject: [PATCH] OS: Don't leak connection translation table on regeneration + (cherry picked from commit e868e0bc0d2318e62707d3ae68532b0029959154) + +--- + os/connection.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/os/connection.c b/os/connection.c +index b944593..d1ba845 100644 +--- a/os/connection.c ++++ b/os/connection.c +@@ -353,7 +353,8 @@ InitConnectionLimits(void) + #endif + + #if !defined(WIN32) +- ConnectionTranslation = (int *)xnfalloc(sizeof(int)*(lastfdesc + 1)); ++ if (!ConnectionTranslation) ++ ConnectionTranslation = (int *)xnfalloc(sizeof(int)*(lastfdesc + 1)); + #else + InitConnectionTranslation(); + #endif +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/OS-IO-Zero-out-client-buffers.patch b/source/x11/xorg-server/OS-IO-Zero-out-client-buffers.patch new file mode 100644 index 0000000..9f3dfe3 --- /dev/null +++ b/source/x11/xorg-server/OS-IO-Zero-out-client-buffers.patch @@ -0,0 +1,28 @@ +From 02e805f0ff4b6af551372ba5fc5fb369c8834d1d Mon Sep 17 00:00:00 2001 +From: Daniel Stone <[EMAIL PROTECTED]> +Date: Sat, 5 Jan 2008 10:38:16 +0200 +Subject: [PATCH] OS: IO: Zero out client buffers + +For alignment reasons, we can write out uninitialised bytes, so allocate +the whole thing with xcalloc. +(cherry picked from commit b99a43dfe97c1813e1c61f298b1c83c5d5ca88a2) +--- + os/io.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/os/io.c b/os/io.c +index 9de75ee..a8b84fb 100644 +--- a/os/io.c ++++ b/os/io.c +@@ -1197,7 +1197,7 @@ AllocateOutputBuffer(void) + oco = (ConnectionOutputPtr)xalloc(sizeof(ConnectionOutput)); + if (!oco) + return (ConnectionOutputPtr)NULL; +- oco->buf = (unsigned char *) xalloc(BUFSIZE); ++ oco->buf = (unsigned char *) xcalloc(1, BUFSIZE); + if (!oco->buf) + { + xfree(oco); +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/XKB-XkbCopyKeymap-Don-t-leak-all-the-sections.patch b/source/x11/xorg-server/XKB-XkbCopyKeymap-Don-t-leak-all-the-sections.patch new file mode 100644 index 0000000..d7d3a5d --- /dev/null +++ b/source/x11/xorg-server/XKB-XkbCopyKeymap-Don-t-leak-all-the-sections.patch @@ -0,0 +1,27 @@ +From 8a3acd3ec41b887b4aeaa0b2932265522c1e2836 Mon Sep 17 00:00:00 2001 +From: Daniel Stone <[EMAIL PROTECTED]> +Date: Sat, 5 Jan 2008 10:43:53 +0200 +Subject: [PATCH] XKB: XkbCopyKeymap: Don't leak all the sections + +Previously, we'd just keep num_sections at 0, which would break the +geometry and lead us to leak sections. Don't do that. +(cherry picked from commit 0137b0394a248f694448a7d97c9a1a3efcf24e81) +--- + xkb/xkbUtils.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c +index c7f9a26..e90df0d 100644 +--- a/xkb/xkbUtils.c ++++ b/xkb/xkbUtils.c +@@ -1770,6 +1770,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) + if (!tmp) + return FALSE; + dst->geom->sections = tmp; ++ dst->geom->num_sections = src->geom->num_sections; + + for (i = 0, + ssection = src->geom->sections, +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/Xephyr-One-time-keyboard-leak-fix.patch b/source/x11/xorg-server/Xephyr-One-time-keyboard-leak-fix.patch new file mode 100644 index 0000000..1cd1091 --- /dev/null +++ b/source/x11/xorg-server/Xephyr-One-time-keyboard-leak-fix.patch @@ -0,0 +1,26 @@ +From 636aa9e7be2822a0148067a11499ad48fe682cd9 Mon Sep 17 00:00:00 2001 +From: Daniel Stone <[EMAIL PROTECTED]> +Date: Sat, 5 Jan 2008 10:47:39 +0200 +Subject: [PATCH] Xephyr: One-time keyboard leak fix + +Don't leak the originally-allocated keysym map. +(cherry picked from commit e85130c85f727466fc27be1cfa46c88b257499fb) +--- + hw/kdrive/ephyr/ephyr.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c +index 27165a5..86e8f1f 100644 +--- a/hw/kdrive/ephyr/ephyr.c ++++ b/hw/kdrive/ephyr/ephyr.c +@@ -915,6 +915,7 @@ EphyrKeyboardInit (KdKeyboardInfo *ki) + ki->minScanCode = ki->keySyms.minKeyCode; + ki->maxScanCode = ki->keySyms.maxKeyCode; + ki->keySyms.mapWidth = ephyrKeySyms.mapWidth; ++ xfree(ki->keySyms.map); + ki->keySyms.map = ephyrKeySyms.map; + ki->name = KdSaveString("Xephyr virtual keyboard"); + ephyrKbd = ki; +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/bug13308-Verify-and-reject-obviously-broken-modes.patch b/source/x11/xorg-server/bug13308-Verify-and-reject-obviously-broken-modes.patch new file mode 100644 index 0000000..fabc8d7 --- /dev/null +++ b/source/x11/xorg-server/bug13308-Verify-and-reject-obviously-broken-modes.patch @@ -0,0 +1,30 @@ +From f4bcb53e86bb103b6bcf8a3a170a36137c34d272 Mon Sep 17 00:00:00 2001 +From: Hong Liu <[EMAIL PROTECTED]> +Date: Wed, 5 Dec 2007 17:48:28 +0100 +Subject: [PATCH] Bug 13308: Verify and reject obviously broken modes. + (cherry picked from commit c6cfcd408df3e44d0094946c0a7d2fa944b4d2d1) + +--- + hw/xfree86/modes/xf86EdidModes.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c +index 8b5e69d..e2ae665 100644 +--- a/hw/xfree86/modes/xf86EdidModes.c ++++ b/hw/xfree86/modes/xf86EdidModes.c +@@ -239,6 +239,12 @@ DDCModeFromDetailedTiming(int scrnIndex, struct detailed_timings *timing, + Mode->VSyncEnd = Mode->VSyncStart + timing->v_sync_width; + Mode->VTotal = timing->v_active + timing->v_blanking; + ++ /* perform basic check on the detail timing */ ++ if (Mode->HSyncEnd > Mode->HTotal || Mode->VSyncEnd > Mode->VTotal) { ++ xfree(Mode); ++ return NULL; ++ } ++ + xf86SetModeDefaultName(Mode); + + /* We ignore h/v_size and h/v_border for now. */ +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/bug13511.patch b/source/x11/xorg-server/bug13511.patch new file mode 100644 index 0000000..2b709b8 --- /dev/null +++ b/source/x11/xorg-server/bug13511.patch @@ -0,0 +1,37 @@ +From 60144ac814ee26e151186f7c93cb1a273468d497 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <[EMAIL PROTECTED]> +Date: Wed, 19 Dec 2007 16:20:36 +1030 +Subject: [PATCH] include: never overwrite realInputProc with enqueueInputProc. Bug #13511 + +In some cases (triggered by a key repeat during a sync grab) XKB unwrapping +can overwrite the device's realInputProc with the enqueueInputProc. When the +grab is released and the events are replayed, we end up in an infinite loop. +Each event is replayed and in replaying pushed to the end of the queue again. + +This fix is a hack only. It ensures that the realInputProc is never +overwritten with the enqueueInputProc. + +This fixes Bug #13511 (https://bugs.freedesktop.org/show_bug.cgi?id=13511) +(cherry picked from commit eace88989c3b65d5c20e9f37ea9b23c7c8e19335) +(cherry picked from commit 50e80c39870adfdc84fdbc00dddf1362117ad443) +--- + include/xkbsrv.h | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/include/xkbsrv.h b/include/xkbsrv.h +index 167dbec..9174eb6 100644 +--- a/include/xkbsrv.h ++++ b/include/xkbsrv.h +@@ -258,7 +258,8 @@ typedef struct + device->public.processInputProc = proc; \ + oldprocs->processInputProc = \ + oldprocs->realInputProc = device->public.realInputProc; \ +- device->public.realInputProc = proc; \ ++ if (proc != device->public.enqueueInputProc) \ ++ device->public.realInputProc = proc; \ + oldprocs->unwrapProc = device->unwrapProc; \ + device->unwrapProc = unwrapproc; + +-- +1.5.3.8 + diff --git a/source/x11/xorg-server/fix-bgPixel-unsigned-long-issues.patch b/source/x11/xorg-server/fix-bgPixel-unsigned-long-issues.patch new file mode 100644 index 0000000..89ac69e --- /dev/null +++ b/source/x11/xorg-server/fix-bgPixel-unsigned-long-issues.patch @@ -0,0 +1,34 @@ +From 41f735fbe02f59bc7bcca335c6e743c72c2fc44c Mon Sep 17 00:00:00 2001 +From: Hong Liu <[EMAIL PROTECTED]> +Date: Tue, 4 Sep 2007 08:46:46 +0100 +Subject: [PATCH] bgPixel (unsigned long) is 64-bit on x86_64, so -1 != 0xffffffff + +This patch should fix bug 8080. +(cherry picked from commit 9adea807038b64292403ede982075fe1dcfd4c9a) +--- + hw/xfree86/xaa/xaaGC.c | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/hw/xfree86/xaa/xaaGC.c b/hw/xfree86/xaa/xaaGC.c +index f3434c9..b3dc83a 100644 +--- a/hw/xfree86/xaa/xaaGC.c ++++ b/hw/xfree86/xaa/xaaGC.c +@@ -80,10 +80,11 @@ XAAValidateGC( + } + + if(pGC->depth != 32) { +- if(pGC->bgPixel == -1) /* -1 is reserved for transparency */ +- pGC->bgPixel = 0x7fffffff; +- if(pGC->fgPixel == -1) /* -1 is reserved for transparency */ +- pGC->fgPixel = 0x7fffffff; ++ /* 0xffffffff is reserved for transparency */ ++ if(pGC->bgPixel == 0xffffffff) ++ pGC->bgPixel = 0x7fffffff; ++ if(pGC->fgPixel == 0xffffffff) ++ pGC->fgPixel = 0x7fffffff; + } + + if((pDraw->type == DRAWABLE_PIXMAP) && !IS_OFFSCREEN_PIXMAP(pDraw)){ +-- +1.5.3.8 + _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
