diff options
Diffstat (limited to 'extra/xorg-server')
-rw-r--r-- | extra/xorg-server/PKGBUILD | 11 | ||||
-rw-r--r-- | extra/xorg-server/vbe-fix-malloc-size-bug.patch | 39 |
2 files changed, 43 insertions, 7 deletions
diff --git a/extra/xorg-server/PKGBUILD b/extra/xorg-server/PKGBUILD index 61b80c955..ae05c054f 100644 --- a/extra/xorg-server/PKGBUILD +++ b/extra/xorg-server/PKGBUILD @@ -8,7 +8,7 @@ pkgrel=1 arch=('i686' 'x86_64') license=('custom') url="http://xorg.freedesktop.org" -makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto' 'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util') +makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto' 'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp') options=('!libtool') source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2 #git-fixes.patch @@ -31,11 +31,8 @@ sha1sums=('1699be5c0edeca553cfa3ee6caa228483465136b' build() { cd "${srcdir}/${pkgbase}-${pkgver}" - # Get rid of the ugly pattern - patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" - # Add pointer barrier support, patch from Fedora - patch -Np1 -i "${srcdir}/xserver-1.10-pointer-barriers.patch" + patch -Np1 -i "${srcdir}/vbe-fix-malloc-size-bug.patch" # Patches from ~ajax/xserver xserver-next branch patch -Np1 -i "${srcdir}/bg-none-revert.patch" @@ -46,7 +43,6 @@ build() { # Use nouveau/nv/nvidia drivers for nvidia devices patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch" - autoreconf ./configure --prefix=/usr \ --enable-ipv6 \ --enable-dri \ @@ -70,6 +66,7 @@ build() { --localstatedir=/var \ --with-xkb-path=/usr/share/X11/xkb \ --with-xkb-output=/var/lib/xkb \ + --with-dri-driver-path=/usr/lib/xorg/modules/dri \ --with-fontrootdir=/usr/share/fonts make @@ -91,7 +88,7 @@ package_xorg-server-common() { make -C xkb DESTDIR="${pkgdir}" install-data install -m755 -d "${pkgdir}/usr/share/man/man1" - install -m644 doc/man/Xserver.1 "${pkgdir}/usr/share/man/man1/" + install -m644 doc/Xserver.1 "${pkgdir}/usr/share/man/man1/" install -m755 -d "${pkgdir}/usr/lib/xorg" install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/" diff --git a/extra/xorg-server/vbe-fix-malloc-size-bug.patch b/extra/xorg-server/vbe-fix-malloc-size-bug.patch new file mode 100644 index 000000000..01ed040d4 --- /dev/null +++ b/extra/xorg-server/vbe-fix-malloc-size-bug.patch @@ -0,0 +1,39 @@ +From 8ffaef2ebd2611e2eed4ef97350c3a34508f5252 Mon Sep 17 00:00:00 2001 +From: Adam Jackson <ajax@redhat.com> +Date: Thu, 24 Feb 2011 21:06:34 +0000 +Subject: vbe: Fix malloc size bug + +v2: Slightly more obvious sizing math. + +==14882== Invalid write of size 2 +==14882== at 0x6750267: VBEGetVBEInfo (vbe.c:400) +==14882== by 0x6142064: ??? (in /usr/lib64/xorg/modules/drivers/vesa_drv.so) +==14882== by 0x471895: InitOutput (xf86Init.c:519) +==14882== by 0x422778: main (main.c:205) +==14882== Address 0x4f32fa8 is 72 bytes inside a block of size 73 alloc'd +==14882== at 0x4A0640D: malloc (vg_replace_malloc.c:236) +==14882== by 0x675024B: VBEGetVBEInfo (vbe.c:398) +==14882== by 0x6142064: ??? (in /usr/lib64/xorg/modules/drivers/vesa_drv.so) +==14882== by 0x471895: InitOutput (xf86Init.c:519) +==14882== by 0x422778: main (main.c:205) + +Reviewed-by: Mark Kettenis <kettenis@openbsd.org> +Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> +Signed-off-by: Adam Jackson <ajax@redhat.com> +(cherry picked from commit d8caa782009abf4dc17b945e325e83fda299a534) +--- +diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c +index 7a64a4a..1d3775b 100644 +--- a/hw/xfree86/vbe/vbe.c ++++ b/hw/xfree86/vbe/vbe.c +@@ -395,7 +395,7 @@ VBEGetVBEInfo(vbeInfoPtr pVbe) + i = 0; + while (modes[i] != 0xffff) + i++; +- block->VideoModePtr = malloc(sizeof(CARD16) * i + 1); ++ block->VideoModePtr = malloc(sizeof(CARD16) * (i + 1)); + memcpy(block->VideoModePtr, modes, sizeof(CARD16) * i); + block->VideoModePtr[i] = 0xffff; + +-- +cgit v0.8.3-6-g21f6 |