summaryrefslogtreecommitdiffstats
path: root/source/l/expat
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/expat')
-rw-r--r--source/l/expat/expat-2.0.1-fixes-3.patch38
-rwxr-xr-xsource/l/expat/expat.SlackBuild28
2 files changed, 60 insertions, 6 deletions
diff --git a/source/l/expat/expat-2.0.1-fixes-3.patch b/source/l/expat/expat-2.0.1-fixes-3.patch
new file mode 100644
index 000000000..5059f297f
--- /dev/null
+++ b/source/l/expat/expat-2.0.1-fixes-3.patch
@@ -0,0 +1,38 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2010-12-09
+Initial Package Version: 2.0.1
+Upstream Status: From Upstream
+Origin: Unknown
+Description: Fixes for CVE-2009-2625 (infinite loop and application hang via
+malformed XML) CVE-2009-3560 (DOS via buffer overrun caused by malformed UTF-8)
+and CVE-2009-3720 (DOS via buffer overrun caused by crafted UTF-8). This
+replaces version -2 which had both the original and the revised fixes for
+CVE-2009-3560 - the revised version is supposed to replace the original, not
+add to it, because of problems with certain perl users of libexpat.
+
+
+diff -Naur expat-2.0.1.orig//lib/xmlparse.c expat-2.0.1/lib/xmlparse.c
+--- expat-2.0.1.orig//lib/xmlparse.c 2007-05-08 03:25:35.000000000 +0100
++++ expat-2.0.1/lib/xmlparse.c 2010-12-06 18:01:03.082339393 +0000
+@@ -3703,6 +3703,9 @@
+ return XML_ERROR_UNCLOSED_TOKEN;
+ case XML_TOK_PARTIAL_CHAR:
+ return XML_ERROR_PARTIAL_CHAR;
++ case -XML_TOK_PROLOG_S:
++ tok = -tok;
++ break;
+ case XML_TOK_NONE:
+ #ifdef XML_DTD
+ /* for internal PE NOT referenced between declarations */
+diff -Naur expat-2.0.1.orig//lib/xmltok_impl.c expat-2.0.1/lib/xmltok_impl.c
+--- expat-2.0.1.orig//lib/xmltok_impl.c 2006-11-26 17:34:46.000000000 +0000
++++ expat-2.0.1/lib/xmltok_impl.c 2010-12-06 18:01:03.082339393 +0000
+@@ -1744,7 +1744,7 @@
+ const char *end,
+ POSITION *pos)
+ {
+- while (ptr != end) {
++ while (ptr < end) {
+ switch (BYTE_TYPE(enc, ptr)) {
+ #define LEAD_CASE(n) \
+ case BT_LEAD ## n: \
diff --git a/source/l/expat/expat.SlackBuild b/source/l/expat/expat.SlackBuild
index 8c972bb67..94e7e3a5b 100755
--- a/source/l/expat/expat.SlackBuild
+++ b/source/l/expat/expat.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,9 +20,19 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.0.1
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
+PKGNAM=expat
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -33,6 +43,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
CWD=$(pwd)
@@ -43,8 +56,11 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf expat-$VERSION
-tar xzvf $CWD/expat-$VERSION.tar.gz || exit 1
+tar xzvf $CWD/expat-$VERSION.tar.?z* || exit 1
cd expat-$VERSION
+
+zcat $CWD/expat-2.0.1-fixes-3.patch.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . -perm 777 -exec chmod 755 {} \;
find . -perm 664 -exec chmod 644 {} \;
@@ -61,7 +77,7 @@ make install DESTDIR=$PKG
)
mkdir -p $PKG/usr/doc/expat-$VERSION
cp -a \
- COPYING Changes README doc/reference.html \
+ COPYING* Changes README* doc/reference.html \
$PKG/usr/doc/expat-$VERSION
gzip -9 $PKG/usr/man/man?/*.?
mkdir -p $PKG/install