summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Brubeck Unhammer2015-07-14 10:24:13 +0200
committerKevin Brubeck Unhammer2015-07-14 10:24:13 +0200
commitc5d17c7e4d518b805b0558ac8f03ede417d2dd33 (patch)
tree0ae9515e443b7bb437612c01746a0cccb2ac7821
downloadaur-libxml2-linenum.tar.gz
Initial import
-rw-r--r--.SRCINFO29
-rw-r--r--PKGBUILD55
-rw-r--r--bug325533-16bit-linenum.patch112
-rw-r--r--fix-CVE-2014-3660.patch28
-rw-r--r--revert-catalog-initialize.patch26
5 files changed, 250 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..a0a64f96d009
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,29 @@
+pkgbase = libxml2-linenum
+ pkgdesc = XML parsing library, version 2, with high line number patch applied
+ pkgver = 2.9.2
+ pkgrel = 1
+ url = http://www.xmlsoft.org/
+ arch = i686
+ arch = x86_64
+ license = MIT
+ makedepends = python2
+ depends = zlib
+ depends = readline
+ depends = ncurses
+ depends = xz
+ optdepends = python2: python bindings to libxml
+ provides = libxml2
+ conflicts = libxml2
+ source = ftp://ftp.xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz
+ source = http://www.w3.org/XML/Test/xmlts20080827.tar.gz
+ source = revert-catalog-initialize.patch
+ source = fix-CVE-2014-3660.patch
+ source = bug325533-16bit-linenum.patch
+ md5sums = 9e6a9aca9d155737868b3dc5fd82f788
+ md5sums = ae3d1ebe000a3972afa104ca7f0e1b4a
+ md5sums = fdb2e26174ac9cced85ffbf4fb782187
+ md5sums = 71c88ee5a133461a8ab8aaa194899453
+ md5sums = 72d9e5a59dfe070effb4a59102d40195
+
+pkgname = libxml2-linenum
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..7ec39bcbb11b
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Tom Gundersen <teg@jklm.no>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Kevin Brubeck Unhammer <unhammer@fsfe.org>
+
+_realname=libxml2
+pkgname=${_realname}-linenum
+pkgver=2.9.2
+pkgrel=1
+pkgdesc="XML parsing library, version 2, with high line number patch applied"
+arch=(i686 x86_64)
+license=('MIT')
+depends=('zlib' 'readline' 'ncurses' 'xz')
+makedepends=('python2')
+optdepends=('python2: python bindings to libxml')
+url="http://www.xmlsoft.org/"
+source=(ftp://ftp.xmlsoft.org/${_realname}/${_realname}-${pkgver}.tar.gz
+ http://www.w3.org/XML/Test/xmlts20080827.tar.gz
+ revert-catalog-initialize.patch
+ fix-CVE-2014-3660.patch
+ bug325533-16bit-linenum.patch)
+md5sums=('9e6a9aca9d155737868b3dc5fd82f788'
+ 'ae3d1ebe000a3972afa104ca7f0e1b4a'
+ 'fdb2e26174ac9cced85ffbf4fb782187'
+ '71c88ee5a133461a8ab8aaa194899453'
+ '72d9e5a59dfe070effb4a59102d40195')
+provides=('libxml2')
+conflicts=('libxml2')
+
+prepare() {
+ cd ${_realname}-${pkgver}
+ 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
+ mv ../xmlconf .
+ patch -Np1 -i ../revert-catalog-initialize.patch
+ patch -Np1 -i ../fix-CVE-2014-3660.patch
+ patch -p0 -b -i ../bug325533-16bit-linenum.patch
+}
+
+build() {
+ cd ${_realname}-${pkgver}
+ ./configure --prefix=/usr --with-threads --with-history --with-python=/usr/bin/python2
+ make
+}
+
+check() {
+ cd ${_realname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${_realname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${_realname}/COPYING"
+}
diff --git a/bug325533-16bit-linenum.patch b/bug325533-16bit-linenum.patch
new file mode 100644
index 000000000000..9aa641b2338a
--- /dev/null
+++ b/bug325533-16bit-linenum.patch
@@ -0,0 +1,112 @@
+*** include/libxml/tree.h.orig Mon Aug 22 05:14:24 2005
+--- include/libxml/tree.h Sat Jan 7 22:30:25 2006
+***************
+*** 452,459 ****
+ struct _xmlAttr *properties;/* properties list */
+ xmlNs *nsDef; /* namespace definitions on this node */
+ void *psvi; /* for type/PSVI informations */
+! unsigned short line; /* line number */
+ unsigned short extra; /* extra data for XPath/XSLT */
+ };
+
+ /**
+--- 452,460 ----
+ struct _xmlAttr *properties;/* properties list */
+ xmlNs *nsDef; /* namespace definitions on this node */
+ void *psvi; /* for type/PSVI informations */
+! unsigned short line16; /* line number */
+ unsigned short extra; /* extra data for XPath/XSLT */
++ int line; /* line number */
+ };
+
+ /**
+*** SAX2.c.orig Sat Sep 3 08:27:39 2005
+--- ./SAX2.c Sat Jan 7 22:34:34 2006
+***************
+*** 1562,1570 ****
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line = (short) ctxt->input->line;
+ else
+! ret->line = 65535;
+ }
+ }
+
+--- 1562,1571 ----
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line16 = (unsigned short) ctxt->input->line;
+ else
+! ret->line16 = 65535;
+! ret->line = ctxt->input->line;
+ }
+ }
+
+***************
+*** 2165,2173 ****
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line = (short) ctxt->input->line;
+ else
+! ret->line = 65535;
+ }
+ }
+
+--- 2166,2175 ----
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line16 = (unsigned short) ctxt->input->line;
+ else
+! ret->line16 = 65535;
+! ret->line = ctxt->input->line;
+ }
+ }
+
+***************
+*** 2508,2516 ****
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line = (short) ctxt->input->line;
+ else
+! ret->line = 65535;
+ }
+ }
+ if (ctxt->inSubset == 1) {
+--- 2510,2519 ----
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line16 = (unsigned short) ctxt->input->line;
+ else
+! ret->line16 = 65535;
+! ret->line = ctxt->input->line;
+ }
+ }
+ if (ctxt->inSubset == 1) {
+***************
+*** 2568,2576 ****
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line = (short) ctxt->input->line;
+ else
+! ret->line = 65535;
+ }
+ }
+
+--- 2571,2580 ----
+ if (ctxt->linenumbers) {
+ if (ctxt->input != NULL) {
+ if (ctxt->input->line < 65535)
+! ret->line16 = (unsigned short) ctxt->input->line;
+ else
+! ret->line16 = 65535;
+! ret->line = ctxt->input->line;
+ }
+ }
+
diff --git a/fix-CVE-2014-3660.patch b/fix-CVE-2014-3660.patch
new file mode 100644
index 000000000000..9e6441c12d46
--- /dev/null
+++ b/fix-CVE-2014-3660.patch
@@ -0,0 +1,28 @@
+From 72a46a519ce7326d9a00f0b6a7f2a8e958cd1675 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <veillard@redhat.com>
+Date: Thu, 23 Oct 2014 11:35:36 +0800
+Subject: Fix missing entities after CVE-2014-3660 fix
+
+For https://bugzilla.gnome.org/show_bug.cgi?id=738805
+
+The fix for CVE-2014-3660 introduced a regression in some case
+where entity substitution is required and the entity is used
+first in anotther entity referenced from an attribute value
+
+diff --git a/parser.c b/parser.c
+index 67c9dfd..a8d1b67 100644
+--- a/parser.c
++++ b/parser.c
+@@ -7235,7 +7235,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
+ * far more secure as the parser will only process data coming from
+ * the document entity by default.
+ */
+- if ((ent->checked == 0) &&
++ if (((ent->checked == 0) ||
++ ((ent->children == NULL) && (ctxt->options & XML_PARSE_NOENT))) &&
+ ((ent->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY) ||
+ (ctxt->options & (XML_PARSE_NOENT | XML_PARSE_DTDVALID)))) {
+ unsigned long oldnbent = ctxt->nbentities;
+--
+cgit v0.10.1
+
diff --git a/revert-catalog-initialize.patch b/revert-catalog-initialize.patch
new file mode 100644
index 000000000000..d98b38211605
--- /dev/null
+++ b/revert-catalog-initialize.patch
@@ -0,0 +1,26 @@
+From f65128f38289d77ff322d63aef2858cc0a819c34 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <veillard@redhat.com>
+Date: Fri, 17 Oct 2014 17:13:41 +0800
+Subject: Revert "Missing initialization for the catalog module"
+
+This reverts commit 054c716ea1bf001544127a4ab4f4346d1b9947e7.
+As this break xmlcatalog command
+https://bugzilla.redhat.com/show_bug.cgi?id=1153753
+
+diff --git a/parser.c b/parser.c
+index 1d93967..67c9dfd 100644
+--- a/parser.c
++++ b/parser.c
+@@ -14830,9 +14830,6 @@ xmlInitParser(void) {
+ #ifdef LIBXML_XPATH_ENABLED
+ xmlXPathInit();
+ #endif
+-#ifdef LIBXML_CATALOG_ENABLED
+- xmlInitializeCatalog();
+-#endif
+ xmlParserInitialized = 1;
+ #ifdef LIBXML_THREAD_ENABLED
+ }
+--
+cgit v0.10.1
+