Oops, forgot the version-dependent patches.
authorJoshua Baergen <joshuabaergen@gentoo.org>
Tue, 4 Oct 2005 04:04:43 +0000 (04:04 +0000)
committerJoshua Baergen <joshuabaergen@gentoo.org>
Tue, 4 Oct 2005 04:04:43 +0000 (04:04 +0000)
Package-Manager: portage-2.0.51.22-r2

x11-base/xorg-server/ChangeLog
x11-base/xorg-server/Manifest
x11-base/xorg-server/files/0.99.1-r10-check-for-glproto.patch [new file with mode: 0644]
x11-base/xorg-server/files/0.99.1-r10_CAN-2005-2495.patch [new file with mode: 0644]

index aa124f003fe34f141cab270c7cc6b47a4ba6d871..cb808ab9d9aff15f1ebd6879ea5488f4383e1140 100644 (file)
@@ -1,6 +1,11 @@
 # ChangeLog for x11-base/xorg-server
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/ChangeLog,v 1.48 2005/10/04 01:27:12 joshuabaergen Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/ChangeLog,v 1.49 2005/10/04 04:04:43 joshuabaergen Exp $
+
+  04 Oct 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+  +files/0.99.1-r10-check-for-glproto.patch,
+  +files/0.99.1-r10_CAN-2005-2495.patch:
+  Oops, forgot the version-dependent patches.
 
 *xorg-server-0.99.1-r10 (04 Oct 2005)
 
index b6bbe5487ca6ae6568d7edd2439779a8e9b59ff3..13bd8f21110325e5f14b19032535e242c500c1ac 100644 (file)
@@ -1,7 +1,9 @@
-MD5 64854138e1f2a2784e25b38b31064db6 ChangeLog 9907
+MD5 4f1112f00b9b984f4f27abfda5c5e219 ChangeLog 10097
 MD5 a37bab73e2f24b213932c30997d3d360 metadata.xml 156
 MD5 b2cfc03cadd9ae25eb5e83b44cdabeaf xorg-server-0.99.1-r9.ebuild 3852
 MD5 803e951251b6a7c0dda68d3a72fba8ad xorg-server-0.99.1-r10.ebuild 3895
+MD5 5a445ea35d70ce20671a49049b406680 files/0.99.1-r10-check-for-glproto.patch 911
+MD5 54ab2c693d9e7e6e09b20bb8dd7db297 files/0.99.1-r10_CAN-2005-2495.patch 4387
 MD5 5a445ea35d70ce20671a49049b406680 files/0.99.1-r9-check-for-glproto.patch 911
 MD5 54ab2c693d9e7e6e09b20bb8dd7db297 files/0.99.1-r9_CAN-2005-2495.patch 4387
 MD5 21ec9868da064e8a549db3d501373dea files/digest-xorg-server-0.99.1-r9 239
diff --git a/x11-base/xorg-server/files/0.99.1-r10-check-for-glproto.patch b/x11-base/xorg-server/files/0.99.1-r10-check-for-glproto.patch
new file mode 100644 (file)
index 0000000..d0638bf
--- /dev/null
@@ -0,0 +1,23 @@
+diff -urN xorg-server-0.99.1.orig/configure.ac xorg-server-0.99.1/configure.ac
+--- xorg-server-0.99.1.orig/configure.ac       2005-09-02 20:27:55.000000000 -0700
++++ xorg-server-0.99.1/configure.ac    2005-09-07 16:19:00.000000000 -0700
+@@ -344,6 +344,9 @@
+       PKG_CHECK_MODULES([LIBDRM], [libdrm])
+       AC_SUBST(DRIPROTO_CFLAGS)
+       AC_SUBST(LIBDRM_CFLAGS)
++      if test "$GLX" = yes; then
++              PKG_CHECK_MODULES([GL],[glproto])
++      fi
+ fi
+ 
+ AM_CONDITIONAL(XINERAMA, [test "x$XINERAMA" = xyes])
+@@ -526,6 +529,9 @@
+       DMX_INCLUDES="$XEXT_INC $RENDER_INC $XTRAP_INC $RECORD_INC"
+       XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $XTRAP_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_DAMAGE_LIB $OS_LIB $MIEXT_SHADOW_LIB"
+       AC_SUBST([XDMX_LIBS])
++      if test "$GLX" = yes; then
++              PKG_CHECK_MODULES([GL],[glproto])
++      fi
+ 
+ dnl USB sources in DMX require <linux/input.h>
+       AC_CHECK_HEADER([linux/input.h], HAVE_LINUX_INPUT_H="yes",
diff --git a/x11-base/xorg-server/files/0.99.1-r10_CAN-2005-2495.patch b/x11-base/xorg-server/files/0.99.1-r10_CAN-2005-2495.patch
new file mode 100644 (file)
index 0000000..447b769
--- /dev/null
@@ -0,0 +1,147 @@
+diff -urN afb/afbpixmap.c afb/afbpixmap.c
+--- afb/afbpixmap.c    2005-08-26 15:35:33.000000000 -0400
++++ afb/afbpixmap.c    2005-08-26 14:09:24.000000000 -0400
+@@ -77,10 +77,14 @@
+       int                             depth;
+ {
+       PixmapPtr pPixmap;
+-      int datasize;
+-      int paddedWidth;
++      size_t datasize;
++      size_t paddedWidth;
+ 
+       paddedWidth = BitmapBytePad(width);
++
++      if (paddedWidth > 32767 || height > 32767)
++              return NullPixmap;
++
+       datasize = height * paddedWidth * depth;
+       pPixmap = AllocatePixmap(pScreen, datasize);
+       if (!pPixmap)
+diff -urN cfb/cfbpixmap.c cfb/cfbpixmap.c
+--- cfb/cfbpixmap.c    2005-08-26 15:35:33.000000000 -0400
++++ cfb/cfbpixmap.c    2005-08-26 14:10:14.000000000 -0400
+@@ -68,10 +68,14 @@
+     int               depth;
+ {
+     PixmapPtr pPixmap;
+-    int datasize;
+-    int paddedWidth;
++    size_t datasize;
++    size_t paddedWidth;
+ 
+     paddedWidth = PixmapBytePad(width, depth);
++
++      if (paddedWidth > 32767 || height > 32767)
++              return NullPixmap;
++
+     datasize = height * paddedWidth;
+     pPixmap = AllocatePixmap(pScreen, datasize);
+     if (!pPixmap)
+diff -urN dix/dispatch.c dix/dispatch.c
+--- dix/dispatch.c     2004-12-12 20:23:05.000000000 -0500
++++ dix/dispatch.c     2005-08-26 14:13:37.000000000 -0400
+@@ -1506,6 +1506,23 @@
+       client->errorValue = 0;
+         return BadValue;
+     }
++      if (stuff->width > 32767 || stuff->height > 32767)
++      {
++              /* It is allowed to try and allocate a pixmap which is larger than
++               * 32767 in either dimension.  However, all of the framebuffer code
++               * is buggy and does not reliably draw to such big pixmaps, basically
++               * because the Region data structure operates with signed shorts for
++               * the rectangles in it.
++               *
++               * Furthermore, several places in the X server compute the size in
++               * bytes of the pixmap and try to store it in an integer.  This
++               * integer can overflow and cause the allocated size to be much
++               * smaller.
++               *
++               * So, such big pixmaps are rejected here with a BadAlloc
++               */
++              return BadAlloc;
++      }
+     if (stuff->depth != 1)
+     {
+         pDepth = pDraw->pScreen->allowedDepths;
+diff -urN fb/fbpixmap.c fb/fbpixmap.c
+--- fb/fbpixmap.c      2004-08-08 23:40:50.000000000 -0400
++++ fb/fbpixmap.c      2005-08-26 14:14:49.000000000 -0400
+@@ -32,12 +32,16 @@
+ fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp)
+ {
+     PixmapPtr pPixmap;
+-    int               datasize;
+-    int               paddedWidth;
++    size_t    datasize;
++    size_t    paddedWidth;
+     int               adjust;
+     int               base;
+ 
+     paddedWidth = ((width * bpp + FB_MASK) >> FB_SHIFT) * sizeof (FbBits);
++
++      if (paddedWidth > 32767 || height > 32767)
++              return NullPixmap;
++
+     datasize = height * paddedWidth;
+ #ifdef PIXPRIV
+     base = pScreen->totalPixmapSize;
+diff -urN hw/xfree86/xaa/xaaInit.c hw/xfree86/xaa/xaaInit.c
+--- hw/xfree86/xaa/xaaInit.c   2004-07-30 16:30:56.000000000 -0400
++++ hw/xfree86/xaa/xaaInit.c   2005-08-26 14:16:30.000000000 -0400
+@@ -499,6 +499,9 @@
+     PixmapPtr pPix = NULL;
+     int size = w * h;
+     
++      if (w > 32767 || h > 32767)
++              return NullPixmap;
++
+     if (!infoRec->offscreenDepthsInitialized)
+       XAAInitializeOffscreenDepths (pScreen);
+ 
+diff -urN hw/xfree86/xf4bpp/ppcPixmap.c hw/xfree86/xf4bpp/ppcPixmap.c
+--- hw/xfree86/xf4bpp/ppcPixmap.c      2004-04-23 15:54:17.000000000 -0400
++++ hw/xfree86/xf4bpp/ppcPixmap.c      2005-08-26 14:17:29.000000000 -0400
+@@ -85,14 +85,18 @@
+     int               depth ;
+ {
+     register PixmapPtr pPixmap  = (PixmapPtr)NULL;
+-    int size ;
++    size_t size ;
+     
+     TRACE(("xf4bppCreatePixmap(pScreen=0x%x, width=%d, height=%d, depth=%d)\n", pScreen, width, height, depth)) ;
+ 
+     if ( depth > 8 )
+-      return (PixmapPtr) NULL ;
++              return (PixmapPtr) NULL ;
++
++      if (width > 32767 || height > 32767)
++              return (PixmapPtr) NULL ;
+ 
+     size = PixmapBytePad(width, depth);
++
+     pPixmap = AllocatePixmap (pScreen, (height * size));
+     
+     if ( !pPixmap )
+diff -urN mfb/mfbpixmap.c mfb/mfbpixmap.c
+--- mfb/mfbpixmap.c    2003-11-14 11:48:57.000000000 -0500
++++ mfb/mfbpixmap.c    2005-08-26 15:34:32.000000000 -0400
+@@ -72,11 +72,15 @@
+     int               depth;
+ {
+     PixmapPtr pPixmap;
+-    int datasize;
+-    int paddedWidth;
++    size_t datasize;
++    size_t paddedWidth;
+ 
+     if (depth != 1)
+       return NullPixmap;
++
++      if (width > 32767 || height > 32767)
++              return NullPixmap;
++
+     paddedWidth = BitmapBytePad(width);
+     datasize = height * paddedWidth;
+     pPixmap = AllocatePixmap(pScreen, datasize);