diff options
author | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2012-02-09 18:15:39 -0300 |
---|---|---|
committer | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2012-02-09 18:15:39 -0300 |
commit | f35184e8782d5fe7fc3ea3f11042b29913cde6d8 (patch) | |
tree | c984d07cfb1cb491f5e7a71f3771a81001398d74 /extra/libxslt | |
parent | 520f5964346341a33a8337c8fd5b1afa10de6d5b (diff) | |
parent | 54b7119c36756b86ea463649ee972cd6c1ce5863 (diff) |
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts:
community/nload/PKGBUILD
core/glibc/PKGBUILD
extra/aalib/PKGBUILD
extra/apache/PKGBUILD
extra/jasper/PKGBUILD
extra/libasyncns/PKGBUILD
extra/libvorbis/PKGBUILD
extra/libxslt/PKGBUILD
extra/xfce4-timer-plugin/PKGBUILD
multilib/lib32-glibc/PKGBUILD
multilib/lib32-gtk2/PKGBUILD
staging/xorg-xinput/PKGBUILD
Diffstat (limited to 'extra/libxslt')
-rw-r--r-- | extra/libxslt/CVE-2011-1202.patch | 56 | ||||
-rw-r--r-- | extra/libxslt/PKGBUILD | 33 |
2 files changed, 78 insertions, 11 deletions
diff --git a/extra/libxslt/CVE-2011-1202.patch b/extra/libxslt/CVE-2011-1202.patch new file mode 100644 index 000000000..61ea213c8 --- /dev/null +++ b/extra/libxslt/CVE-2011-1202.patch @@ -0,0 +1,56 @@ +From ecb6bcb8d1b7e44842edde3929f412d46b40c89f Mon Sep 17 00:00:00 2001 +From: Daniel Veillard <veillard@redhat.com> +Date: Tue, 22 Feb 2011 02:14:23 +0000 +Subject: Fix generate-id() to not expose object addresses + +As pointed out by Chris Evans <scarybeasts@gmail.com> it's better +security wise to not expose object addresses directly, use a diff +w.r.t. the document root own address to avoid this +* libxslt/functions.c: fix IDs generation code +--- +diff --git a/libxslt/functions.c b/libxslt/functions.c +index 4720c7a..de962f4 100644 +--- a/libxslt/functions.c ++++ b/libxslt/functions.c +@@ -654,8 +654,9 @@ xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs) + void + xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){ + xmlNodePtr cur = NULL; +- unsigned long val; +- xmlChar str[20]; ++ long val; ++ xmlChar str[30]; ++ xmlDocPtr doc; + + if (nargs == 0) { + cur = ctxt->context->node; +@@ -694,9 +695,24 @@ xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){ + * Okay this is ugly but should work, use the NodePtr address + * to forge the ID + */ +- val = (unsigned long)((char *)cur - (char *)0); +- val /= sizeof(xmlNode); +- sprintf((char *)str, "id%ld", val); ++ if (cur->type != XML_NAMESPACE_DECL) ++ doc = cur->doc; ++ else { ++ xmlNsPtr ns = (xmlNsPtr) cur; ++ ++ if (ns->context != NULL) ++ doc = ns->context; ++ else ++ doc = ctxt->context->doc; ++ ++ } ++ ++ val = (long)((char *)cur - (char *)doc); ++ if (val >= 0) { ++ sprintf((char *)str, "idp%ld", val); ++ } else { ++ sprintf((char *)str, "idm%ld", -val); ++ } + valuePush(ctxt, xmlXPathNewString(str)); + } + +-- +cgit v0.9.0.2 diff --git a/extra/libxslt/PKGBUILD b/extra/libxslt/PKGBUILD index 372d98220..7a5b0f70f 100644 --- a/extra/libxslt/PKGBUILD +++ b/extra/libxslt/PKGBUILD @@ -1,31 +1,42 @@ -# $Id: PKGBUILD 87866 2010-08-18 15:17:10Z ibiru $ +# $Id: PKGBUILD 149384 2012-02-07 12:34:45Z jgc $ # Maintainer: Eric Belanger <eric@archlinux.org> # Contributor: John Proctor <jproctor@prium.net> pkgname=libxslt pkgver=1.1.26 -pkgrel=2.1 +pkgrel=3 pkgdesc="XML stylesheet transformation library" arch=('i686' 'x86_64' 'mips64el') url="http://xmlsoft.org/XSLT/" license=('custom') -depends=('libxml2>=2.7.7' 'libgcrypt>=1.4.6') +depends=('libxml2' 'libgcrypt') makedepends=('python2') +checkdepends=('docbook-xml') options=('!libtool') -source=(ftp://xmlsoft.org/libxslt/${pkgname}-${pkgver}.tar.gz) -md5sums=('e61d0364a30146aaa3001296f853b2b9') +source=(ftp://xmlsoft.org/libxslt/${pkgname}-${pkgver}.tar.gz + CVE-2011-1202.patch) +md5sums=('e61d0364a30146aaa3001296f853b2b9' + 'ce9744943575efaa6b5501668899b753') build() { cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr --with-python=/usr/bin/python2.7 + patch -Np1 -i "${srcdir}/CVE-2011-1202.patch" + sed -e 's|/usr/bin/python -u|/usr/bin/python2 -u|g' -e 's|/usr/bin/python$|/usr/bin/python2|g' -i python/tests/*.py + ./configure --prefix=/usr --with-python=/usr/bin/python2 make - make DESTDIR="${pkgdir}" install +} + +check() { + cd "${srcdir}/${pkgname}-${pkgver}" + make check +} - for f in pyxsltproc.py extfunc.py exslt.py extelem.py basic.py; do - sed -e 's|#!/usr/bin/python|#!/usr/bin/python2|' \ - -i ${pkgdir}/usr/share/doc/libxslt-python-1.1.26/examples/${f} - done +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install install -d "${pkgdir}/usr/share/licenses/${pkgname}" install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" + + rm -f "${pkgdir}"/usr/lib/python*/site-packages/*.a } |