summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Baergen <joshuabaergen@gentoo.org>2005-09-13 01:02:51 +0000
committerJoshua Baergen <joshuabaergen@gentoo.org>2005-09-13 01:02:51 +0000
commit978168acbbf17784b7a555ae1b57998005176ead (patch)
tree51685ec1c1028c105451968c9d0ff6c0aaaba9ea /x11-base
parentMark 1.9.23 ~amd64 (diff)
downloadgentoo-2-978168acbbf17784b7a555ae1b57998005176ead.tar.gz
gentoo-2-978168acbbf17784b7a555ae1b57998005176ead.tar.bz2
gentoo-2-978168acbbf17784b7a555ae1b57998005176ead.zip
Bump to include security fix from bug #105688.
(Portage version: 2.0.52-r1)
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/xorg-server/ChangeLog9
-rw-r--r--x11-base/xorg-server/Manifest12
-rw-r--r--x11-base/xorg-server/files/0.99.1-r9-check-for-glproto.patch23
-rw-r--r--x11-base/xorg-server/files/0.99.1-r9_CAN-2005-2495.patch147
-rw-r--r--x11-base/xorg-server/files/digest-xorg-server-0.99.1-r93
-rw-r--r--x11-base/xorg-server/xorg-server-0.99.1-r9.ebuild150
6 files changed, 339 insertions, 5 deletions
diff --git a/x11-base/xorg-server/ChangeLog b/x11-base/xorg-server/ChangeLog
index 498dd518d618..b5b03a366dbf 100644
--- a/x11-base/xorg-server/ChangeLog
+++ b/x11-base/xorg-server/ChangeLog
@@ -1,6 +1,13 @@
# 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.43 2005/09/12 22:40:27 spyderous Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/ChangeLog,v 1.44 2005/09/13 01:02:51 joshuabaergen Exp $
+
+*xorg-server-0.99.1-r9 (13 Sep 2005)
+
+ 13 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/0.99.1-r9_CAN-2005-2495.patch,
+ +files/0.99.1-r9-check-for-glproto.patch, +xorg-server-0.99.1-r9.ebuild:
+ Bump to include security fix from bug #105688.
12 Sep 2005; Donnie Berkholz <spyderous@gentoo.org>;
xorg-server-0.99.1-r8.ebuild:
diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index 902dda6fc7d5..8182f3ed78fa 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1,10 +1,14 @@
-MD5 d0c48d00e5e3a8a87c4c2e602581ac14 ChangeLog 8910
+MD5 1ca29c050ded84d2e782065401d615b3 ChangeLog 9170
MD5 a37bab73e2f24b213932c30997d3d360 metadata.xml 156
MD5 13447c0668e6e61ce31da5ef702db959 xorg-server-0.99.1-r7.ebuild 3677
MD5 2534e0066e060e98735d247885cddb10 xorg-server-0.99.1-r8.ebuild 3766
+MD5 63f0db5bd3c602422b0af6f6ba0788c6 xorg-server-0.99.1-r9.ebuild 3806
+MD5 1fa8d5da48c29537eeca2a0b63fd31a2 files/fix-xnest.patch 682
MD5 bef863b379ee69c1339b0e01e4d51284 files/0.99.1-r6-check-for-glproto.patch 859
+MD5 5a445ea35d70ce20671a49049b406680 files/0.99.1-r8-check-for-glproto.patch 911
+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 09038114af03ae42879f9729972ce96e files/digest-xorg-server-0.99.1-r7 241
-MD5 1fa8d5da48c29537eeca2a0b63fd31a2 files/fix-xnest.patch 682
-MD5 55216957eaf15355f76c7499c9127760 files/make-fbcompose-endian-safe.patch 803
MD5 21ec9868da064e8a549db3d501373dea files/digest-xorg-server-0.99.1-r8 239
-MD5 5a445ea35d70ce20671a49049b406680 files/0.99.1-r8-check-for-glproto.patch 911
+MD5 21ec9868da064e8a549db3d501373dea files/digest-xorg-server-0.99.1-r9 239
+MD5 55216957eaf15355f76c7499c9127760 files/make-fbcompose-endian-safe.patch 803
diff --git a/x11-base/xorg-server/files/0.99.1-r9-check-for-glproto.patch b/x11-base/xorg-server/files/0.99.1-r9-check-for-glproto.patch
new file mode 100644
index 000000000000..d0638bfb58cd
--- /dev/null
+++ b/x11-base/xorg-server/files/0.99.1-r9-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 <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-r9_CAN-2005-2495.patch b/x11-base/xorg-server/files/0.99.1-r9_CAN-2005-2495.patch
new file mode 100644
index 000000000000..447b76946d2d
--- /dev/null
+++ b/x11-base/xorg-server/files/0.99.1-r9_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);
diff --git a/x11-base/xorg-server/files/digest-xorg-server-0.99.1-r9 b/x11-base/xorg-server/files/digest-xorg-server-0.99.1-r9
new file mode 100644
index 000000000000..df3d85104a58
--- /dev/null
+++ b/x11-base/xorg-server/files/digest-xorg-server-0.99.1-r9
@@ -0,0 +1,3 @@
+MD5 ae556a5fa66cb9871cd9eb93bcc908ad xorg-server-0.99.1.tar.bz2 3602415
+MD5 0df27701df0924d17ddf41185efa8ce1 MesaLib-6.3.2.tar.bz2 3012145
+MD5 663fffee2ca1db123595cf66caac928b xorg-server-0.99.1-update-to-CVS-HEAD-20050907.patch.gz 300366
diff --git a/x11-base/xorg-server/xorg-server-0.99.1-r9.ebuild b/x11-base/xorg-server/xorg-server-0.99.1-r9.ebuild
new file mode 100644
index 000000000000..452e6a14e0b1
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-0.99.1-r9.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-0.99.1-r9.ebuild,v 1.1 2005/09/13 01:02:51 joshuabaergen Exp $
+
+# Must be before x-modular eclass is inherited
+# Hack to make sure autoreconf gets run
+SNAPSHOT="yes"
+
+inherit flag-o-matic x-modular multilib
+
+OPENGL_DIR="xorg-x11"
+
+MESA_PN="Mesa"
+MESA_PV="6.3.2"
+MESA_P="${MESA_PN}-${MESA_PV}"
+MESA_SRC_P="${MESA_PN}Lib-${MESA_PV}"
+
+CVS_UPDATE_DATE="20050907"
+
+PATCHES="${WORKDIR}/${P}-update-to-CVS-HEAD-${CVS_UPDATE_DATE}.patch
+ ${FILESDIR}/${PVR}-check-for-glproto.patch
+ ${FILESDIR}/${PVR}_CAN-2005-2495.patch"
+
+SRC_URI="${SRC_URI}
+ mirror://sourceforge/mesa3d/${MESA_SRC_P}.tar.bz2
+ http://dev.gentoo.org/~spyderous/xorg-x11/xorg-server-0.99.1-update-to-CVS-HEAD-${CVS_UPDATE_DATE}.patch.gz"
+DESCRIPTION="X.Org X servers"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+#IUSE="dri ipv6 minimal xprint"
+IUSE="dri ipv6 minimal"
+RDEPEND="x11-libs/libXfont
+ x11-libs/xtrans
+ x11-libs/libXau
+ x11-libs/libXext
+ x11-libs/libX11
+ x11-libs/libxkbfile
+ x11-libs/libXdmcp
+ x11-libs/libXmu
+ x11-libs/libXrender
+ x11-libs/libXi
+ media-libs/freetype
+ >=media-libs/mesa-6
+ media-fonts/font-misc-misc
+ media-fonts/font-cursor-misc
+ x11-misc/xbitmaps
+ x11-misc/xkbdata
+ x11-apps/iceauth
+ x11-apps/rgb
+ x11-apps/xauth
+ x11-apps/xinit
+ app-admin/eselect-opengl"
+DEPEND="${RDEPEND}
+ x11-proto/randrproto
+ x11-proto/renderproto
+ x11-proto/fixesproto
+ x11-proto/damageproto
+ x11-proto/xextproto
+ x11-proto/xproto
+ x11-proto/xf86dgaproto
+ x11-proto/xf86miscproto
+ x11-proto/xf86rushproto
+ x11-proto/xf86vidmodeproto
+ x11-proto/xf86bigfontproto
+ x11-proto/compositeproto
+ x11-proto/recordproto
+ x11-proto/resourceproto
+ x11-proto/dmxproto
+ x11-proto/videoproto
+ x11-proto/scrnsaverproto
+ x11-proto/evieext
+ x11-proto/trapproto
+ >=x11-proto/xineramaproto-1.1-r1
+ x11-proto/fontsproto
+ >=x11-proto/kbproto-1.0-r1
+ x11-proto/inputproto
+ x11-proto/bigreqsproto
+ x11-proto/xcmiscproto
+ x11-proto/glproto
+ dri? ( x11-proto/xf86driproto
+ x11-libs/libdrm )"
+# xprint? ( x11-proto/printproto )
+
+pkg_setup() {
+ # localstatedir is used for the log location; we need to override the default
+ # from ebuild.sh
+ # sysconfdir is used for the xorg.conf location; same applies
+ CONFIGURE_OPTIONS="
+ $(use_enable ipv6)
+ $(use_enable !minimal dmx)
+ $(use_enable !minimal xvfb)
+ $(use_enable !minimal xnest)
+ $(use_enable dri)
+ --disable-xprint
+ --enable-xcsecurity
+ --with-mesa-source=${WORKDIR}/${MESA_P}
+ --enable-xorg
+ --enable-xtrap
+ --enable-xevie
+ --sysconfdir=/etc/X11
+ --localstatedir=/var
+ --with-xkb-path=/usr/$(get_libdir)/X11/xkb
+ --disable-static"
+# $(use_enable xprint)
+
+ # X won't start if -fomit-frame-pointer isn't filtered
+ filter-flags -fomit-frame-pointer
+}
+
+src_install() {
+ x-modular_src_install
+
+ dynamic_libgl_install
+
+ dosym Xorg /usr/bin/X
+ fperms 4711 /usr/bin/Xorg
+}
+
+pkg_postinst() {
+ switch_opengl_implem
+}
+
+pkg_postrm() {
+ # Get rid of module dir to ensure opengl-update works properly
+ if ! has_version x11-base/xorg-server; then
+ if [ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]; then
+ rm -rf ${ROOT}/usr/$(get_libdir)/xorg/modules
+ fi
+ fi
+}
+
+dynamic_libgl_install() {
+ # next section is to setup the dynamic libGL stuff
+ ebegin "Moving GL files for dynamic switching"
+ dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
+ local x=""
+ for x in ${D}/usr/$(get_libdir)/xorg/modules/libglx*; do
+ if [ -f ${x} -o -L ${x} ]; then
+ mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
+ fi
+ done
+ eend 0
+}
+
+switch_opengl_implem() {
+ # Switch to the xorg implementation.
+ # Use new opengl-update that will not reset user selected
+ # OpenGL interface ...
+ echo
+ eselect opengl set --use-old ${OPENGL_DIR}
+}