From 3a779789b1eccec972f16ad9512056795fc69dda Mon Sep 17 00:00:00 2001 From: Joshua Baergen Date: Tue, 4 Oct 2005 04:04:43 +0000 Subject: Oops, forgot the version-dependent patches. Package-Manager: portage-2.0.51.22-r2 --- x11-base/xorg-server/ChangeLog | 7 +- x11-base/xorg-server/Manifest | 4 +- .../files/0.99.1-r10-check-for-glproto.patch | 23 ++++ .../files/0.99.1-r10_CAN-2005-2495.patch | 147 +++++++++++++++++++++ 4 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 x11-base/xorg-server/files/0.99.1-r10-check-for-glproto.patch create mode 100644 x11-base/xorg-server/files/0.99.1-r10_CAN-2005-2495.patch (limited to 'x11-base') diff --git a/x11-base/xorg-server/ChangeLog b/x11-base/xorg-server/ChangeLog index aa124f003fe3..cb808ab9d9af 100644 --- a/x11-base/xorg-server/ChangeLog +++ b/x11-base/xorg-server/ChangeLog @@ -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 + +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) diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest index b6bbe5487ca6..13bd8f211103 100644 --- a/x11-base/xorg-server/Manifest +++ b/x11-base/xorg-server/Manifest @@ -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 index 000000000000..d0638bfb58cd --- /dev/null +++ b/x11-base/xorg-server/files/0.99.1-r10-check-for-glproto.patch @@ -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 + 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 index 000000000000..447b76946d2d --- /dev/null +++ b/x11-base/xorg-server/files/0.99.1-r10_CAN-2005-2495.patch @@ -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); -- cgit v1.2.3-65-gdbad