Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=538c975ec1f3bdd14b5d3a41f638dbcb704ef802

commit 538c975ec1f3bdd14b5d3a41f638dbcb704ef802
Author: VMiklos <[EMAIL PROTECTED]>
Date:   Tue Sep 18 00:26:37 2007 +0200

xorg-server-1.2.0-9-i686
added CVE-2007-4730.patch
closes #2411

diff --git a/source/x11/xorg-server/CVE-2007-4730.patch 
b/source/x11/xorg-server/CVE-2007-4730.patch
new file mode 100644
index 0000000..2beb3f9
--- /dev/null
+++ b/source/x11/xorg-server/CVE-2007-4730.patch
@@ -0,0 +1,129 @@
+From: Keith Packard <[EMAIL PROTECTED]>
+Date: Sun, 2 Sep 2007 04:14:22 +0000 (-0700)
+Subject: [COMPOSITE] Composite used for pixmap population on redirect. (Bug 
#7447)
+X-Git-Tag: xf-3_9_16d / xf-3_9_16e / xf-3_9_16f / xf-3_9_16Z
+X-Git-Url: 
http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=commitdiff;h=b69e6165136ff76ba4649bb9d11906fef27b78bc
+
+[COMPOSITE] Composite used for pixmap population on redirect. (Bug #7447)
+
+compNewPixmap copies bits from the parent window to the redirected child
+pixmap to populate the pixmap with reasonable data. It cannot always use
+CopyArea as that only works across matching depths. Use Composite when
+the depths do not match.
+(cherry picked from commit f98dfec79dadb70fa7bba84e7335f92b3a73dc02)
+---
+
+--- a/composite/compalloc.c
++++ b/composite/compalloc.c
+@@ -461,7 +461,6 @@ compNewPixmap (WindowPtr pWin, int x, in
+     ScreenPtr     pScreen = pWin->drawable.pScreen;
+     WindowPtr     pParent = pWin->parent;
+     PixmapPtr     pPixmap;
+-    GCPtr         pGC;
+
+     pPixmap = (*pScreen->CreatePixmap) (pScreen, w, h, pWin->drawable.depth);
+
+@@ -471,25 +470,63 @@ compNewPixmap (WindowPtr pWin, int x, in
+     pPixmap->screen_x = x;
+     pPixmap->screen_y = y;
+
+-    pGC = GetScratchGC (pWin->drawable.depth, pScreen);
+-
+-    /*
+-     * Copy bits from the parent into the new pixmap so that it will
+-     * have "reasonable" contents in case for background None areas.
+-     */
+-    if (pGC)
++    if (pParent->drawable.depth == pWin->drawable.depth)
+     {
+-      XID val = IncludeInferiors;
++      GCPtr   pGC = GetScratchGC (pWin->drawable.depth, pScreen);
+
+-      ValidateGC(&pPixmap->drawable, pGC);
+-      dixChangeGC (serverClient, pGC, GCSubwindowMode, &val, NULL);
+-      (*pGC->ops->CopyArea) (&pParent->drawable,
+-                             &pPixmap->drawable,
+-                             pGC,
+-                             x - pParent->drawable.x,
+-                             y - pParent->drawable.y,
+-                             w, h, 0, 0);
+-      FreeScratchGC (pGC);
++      /*
++       * Copy bits from the parent into the new pixmap so that it will
++       * have "reasonable" contents in case for background None areas.
++       */
++      if (pGC)
++      {
++          XID val = IncludeInferiors;
++
++          ValidateGC(&pPixmap->drawable, pGC);
++          dixChangeGC (serverClient, pGC, GCSubwindowMode, &val, NULL);
++          (*pGC->ops->CopyArea) (&pParent->drawable,
++                                 &pPixmap->drawable,
++                                 pGC,
++                                 x - pParent->drawable.x,
++                                 y - pParent->drawable.y,
++                                 w, h, 0, 0);
++          FreeScratchGC (pGC);
++      }
++    }
++    else
++    {
++      PictFormatPtr   pSrcFormat = compWindowFormat (pParent);
++      PictFormatPtr   pDstFormat = compWindowFormat (pWin);
++      XID             inferiors = IncludeInferiors;
++      int             error;
++
++      PicturePtr      pSrcPicture = CreatePicture (None,
++                                                   &pParent->drawable,
++                                                   pSrcFormat,
++                                                   CPSubwindowMode,
++                                                   &inferiors,
++                                                   serverClient, &error);
++
++      PicturePtr      pDstPicture = CreatePicture (None,
++                                                   &pPixmap->drawable,
++                                                   pDstFormat,
++                                                   0, 0,
++                                                   serverClient, &error);
++
++      if (pSrcPicture && pDstPicture)
++      {
++          CompositePicture (PictOpSrc,
++                            pSrcPicture,
++                            NULL,
++                            pDstPicture,
++                            x - pParent->drawable.x,
++                            y - pParent->drawable.y,
++                            0, 0, 0, 0, w, h);
++      }
++      if (pSrcPicture)
++          FreePicture (pSrcPicture, 0);
++      if (pDstPicture)
++          FreePicture (pDstPicture, 0);
+     }
+     return pPixmap;
+ }
+--- a/composite/compint.h
++++ b/composite/compint.h
+@@ -232,6 +232,9 @@ compCheckTree (ScreenPtr pScreen);
+ #define compCheckTree(s)
+ #endif
+
++PictFormatPtr
++compWindowFormat (WindowPtr pWin);
++
+ void
+ compSetPixmap (WindowPtr pWin, PixmapPtr pPixmap);
+
+--- a/composite/compwindow.c
++++ b/composite/compwindow.c
+@@ -685,7 +685,7 @@ compGetWindowVisual (WindowPtr pWin)
+     return 0;
+ }
+
+-static PictFormatPtr
++PictFormatPtr
+ compWindowFormat (WindowPtr pWin)
+ {
+     ScreenPtr pScreen = pWin->drawable.pScreen;
diff --git a/source/x11/xorg-server/FrugalBuild 
b/source/x11/xorg-server/FrugalBuild
index d74cf76..e257d12 100644
--- a/source/x11/xorg-server/FrugalBuild
+++ b/source/x11/xorg-server/FrugalBuild
@@ -3,7 +3,7 @@

pkgname=xorg-server
pkgver=1.2.0
-pkgrel=8
+pkgrel=9
mesaver=7.0.1
pkgdesc="Modular X.Org X Server"
groups=('x11' 'xorg-core')
@@ -41,7 +41,8 @@ source=([EMAIL PROTECTED] 
http://dl.sourceforge.net/sourceforge/mesa3d/MesaLib-$mesav
bug-9367.patch \
mesa-6.5.3.patch \
remove__GLinterface.patch \
-       
http://xorg.freedesktop.org/archive/X11R7.2/patches/xorg-xserver-1.2.0-xcmisc.diff)
+       
http://xorg.freedesktop.org/archive/X11R7.2/patches/xorg-xserver-1.2.0-xcmisc.diff
 \
+       CVE-2007-4730.patch)

subpkgs=('libglx')
subdescs=('Glx library for XOrg.')
@@ -74,6 +75,7 @@ build() {
## as always xorg devels -> <-mesa devels mess ..
Fpatch mesa-6.5.3.patch
Fpatch remove__GLinterface.patch
+       Fpatch CVE-2007-4730.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
@@ -132,5 +134,6 @@ sha1sums=('3c4e8ae90fafdddb4ec6e640b693c2beb295d106' \
'22025bd7b96deec8cd31f24fe87a170f1c7898d1' \
'f257b56953e9756d38aa01c7f7f5d9a13160576c' \
'6473a13b65db3e44ba8b369a6a9c667887c41a52' \
-          '3557cbe23be6912106ed7220d95301311fb93a26')
+          '3557cbe23be6912106ed7220d95301311fb93a26' \
+          '4b8f2ea8ac293db6d0c2942ef01d894e66a9764f')
# optimization OK
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to