[Frugalware-darcs] frugalware-0.6: xorg-server-1.2.0-2terminus2-i686

voroskoi voroskoi at frugalware.org
Tue Sep 18 22:03:55 CEST 2007


Darcsweb-Url: http://darcs.frugalware.org/darcsweb/darcsweb.cgi?r=frugalware-0.6;a=darcs_commitdiff;h=20070918193801-dd049-d370bdd929356131025f96f0aafe36d2044b27f2.gz;

[xorg-server-1.2.0-2terminus2-i686
voroskoi <voroskoi at frugalware.org>**20070918193801
 secfix relbump, closes #2411
] {
addfile ./source/x11/xorg-server/CVE-2007-4730.patch
hunk ./source/x11/xorg-server/CVE-2007-4730.patch 1
+From: Keith Packard <keithp at koto.keithp.com>
+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;
hunk ./source/x11/xorg-server/FrugalBuild 6
-pkgrel=2terminus1
+pkgrel=2terminus2
hunk ./source/x11/xorg-server/FrugalBuild 45
-	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)
hunk ./source/x11/xorg-server/FrugalBuild 79
+	Fpatch CVE-2007-4730.patch
hunk ./source/x11/xorg-server/FrugalBuild 117
-sha1sums=('3c4e8ae90fafdddb4ec6e640b693c2beb295d106'\
-          'ba860bb6ee57c02202342dfd5927464a068ea18f'\
-          'f31702e0029b2d68018598e73ed55c4d6c58367b'\
-          '859b98a4049400be152032fc09ceff2afe9e6dcf'\
-          '863ad92892785c3785b122bf54d0def4d4d2732c'\
-          '777194af057a8cfe02a4d5aacade37c6e4c4786f'\
-          '4713d46b31eafbde58a1fafe8269642df6a12d77'\
-          '426b0b08617ec19cba41ab20f3891cab82f205a2'\
-          'b49bb4f22426fd0dab7551ef8907276214c9a3fa'\
-          '2937d6a50155cc16f73ae44b1e5b6e26cabbb86a'\
-          '31938c89a107ce89b06287b28c6d355ecaa13217'\
-          '0eb64d46172b6f2f4462c02dad7964c6d7656076'\
-          '067931e73ffd718f0715ddd69040c660821083d8'\
-          'af385a1f28afb4368719c634b4fb5d3991e9e432'\
-          '9d0d4102b26962cc453c4d66f5638f0cfb33c4fd'\
-          'f53de93da5e110867db8b1655b5798d2049f43ae'\
-          '22025bd7b96deec8cd31f24fe87a170f1c7898d1'\
-          '3557cbe23be6912106ed7220d95301311fb93a26')
+sha1sums=('3c4e8ae90fafdddb4ec6e640b693c2beb295d106' \
+          'ba860bb6ee57c02202342dfd5927464a068ea18f' \
+          'f31702e0029b2d68018598e73ed55c4d6c58367b' \
+          '859b98a4049400be152032fc09ceff2afe9e6dcf' \
+          '863ad92892785c3785b122bf54d0def4d4d2732c' \
+          '777194af057a8cfe02a4d5aacade37c6e4c4786f' \
+          '4713d46b31eafbde58a1fafe8269642df6a12d77' \
+          '426b0b08617ec19cba41ab20f3891cab82f205a2' \
+          'b49bb4f22426fd0dab7551ef8907276214c9a3fa' \
+          '2937d6a50155cc16f73ae44b1e5b6e26cabbb86a' \
+          '31938c89a107ce89b06287b28c6d355ecaa13217' \
+          '0eb64d46172b6f2f4462c02dad7964c6d7656076' \
+          '067931e73ffd718f0715ddd69040c660821083d8' \
+          'af385a1f28afb4368719c634b4fb5d3991e9e432' \
+          '9d0d4102b26962cc453c4d66f5638f0cfb33c4fd' \
+          'f53de93da5e110867db8b1655b5798d2049f43ae' \
+          '22025bd7b96deec8cd31f24fe87a170f1c7898d1' \
+          '3557cbe23be6912106ed7220d95301311fb93a26' \
+          '4b8f2ea8ac293db6d0c2942ef01d894e66a9764f')
}


More information about the Frugalware-darcs mailing list