mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-28 22:12:10 +01:00
bump(dev-libs/libxml2): sync with upstream
This commit is contained in:
parent
f1d720d69e
commit
6231c73ab0
@ -1,6 +1,6 @@
|
||||
DIST libxml2-2.9.4.tar.gz 5374830 SHA256 ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c SHA512 f5174ab1a3a0ec0037a47f47aa47def36674e02bfb42b57f609563f84c6247c585dbbb133c056953a5adb968d328f18cbc102eb0d00d48eb7c95478389e5daf9 WHIRLPOOL 268d3364a3d293810dff060b3ab92042c5550e50dbe9038c4d5b54ea6a22ed77f9572575517ae3bacfe518d634047eb9d5345e903b125e56a3d32ad1ba96dabf
|
||||
DIST libxml2-2.9.5.tar.gz 5466888 SHA256 4031c1ecee9ce7ba4f313e91ef6284164885cdb69937a123f6a83bb6a72dcd38 SHA512 197dbd1722e5f90eea43837323352f48d215e198aa6b95685645ef7511e2beba8aadc0dd67e099c945120c5dbe7f8c9da5f376b22f447059e9ffa941c1bfd175 WHIRLPOOL 14cfeaa1c18af4e64131505010484b2e64d83d617984c6321b77c4263901b16b24c945eb9af17763fe63048c3910111fdc498fe9183c04ecea9182ea8f9214fa
|
||||
DIST libxml2-2.9.6.tar.gz 5469624 SHA256 8b9038cca7240e881d462ea391882092dfdc6d4f483f72683e817be08df5ebbc SHA512 5ef80f895374bd5dd3bcd5f00c715795f026bf45d998f8f762c0cdb739b8755e01de40cf853d98a3826eacef95c4adebe4777db11020e8d98d0bda921f55a0ed WHIRLPOOL 1fa2b10f8715f3718863957e6a5173400b42c6587c4602f52c0ae9103fafd7a515c28158c9bc928c532139cd73274f070015c64677434a0a6fa83f0a9e8425ff
|
||||
DIST xmlts20080827.tar.gz 638940 SHA256 96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d WHIRLPOOL 50835380c3ea208df0bf9ce032ed2df69c4c6cb5a53ffdd39a08fb4f1d166f311b2ef2fe0d9911ae1ebff92aeb42f6ea55e727dfe0b7a3b95e6c7240315b3eda
|
||||
DIST xsts-2002-01-16.tar.gz 6894439 SHA256 55e5c08db29946a91ea8e70e8f2418d3fd30d8b6777941dfba7f54726ffd9914 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 WHIRLPOOL 84dd51959460a4f8aa582d57ad39229c546ca7fe155012c57c368b59f5d31400d8b940a343a7320058330ca611303139cacdffed514783f96406ac5366026b11
|
||||
DIST xsts-2004-01-14.tar.gz 2761085 SHA256 09bdf9f81f381ebf9bc158a9472e498e896f7a02eb7461146e9abe1b9493ca17 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe WHIRLPOOL c46a3bf7d6dd771757f4304995cc177cf51c6cdd0e9778851fc13d3809c7b984690b4f273b3e075abe018110968eb7fc78f5b83170d3e18bacf00a4ed64b213d
|
||||
DIST libxml2-2.9.6.tar.gz 5469624 BLAKE2B cb8fc74044876b2ddf9742a4a84d685ce6cd1e41a991ee79fd70a9175c54d2a9a3d3a2c3229a4ce177fcd4e30b0cee08c7cf3a36fef68b179db0ce521fbbf3b0 SHA512 5ef80f895374bd5dd3bcd5f00c715795f026bf45d998f8f762c0cdb739b8755e01de40cf853d98a3826eacef95c4adebe4777db11020e8d98d0bda921f55a0ed
|
||||
DIST libxml2-2.9.7.tar.gz 5467389 BLAKE2B e15082fb87fb41a7aab6f39120b1d1bbd0325af8009bb3b74c69a98bf7347a39f59055762df157dcf223a79ac84f17535cb40af0a9a461ee3d2c1d55f4832e1b SHA512 da06cb7c5032ef4b7c8e902fabb9d2c74634c42c161be07a7c66a00d53a68029f89b0d4de32a6b9d4ff338c2d1d9c4e53aefb9cf50cb1c2d6c6b06b442ef42d5
|
||||
DIST libxml2-2.9.8.tar.gz 5469097 BLAKE2B 0b7836db46edebf6e7108c28da4bb7e3fb5ddc695aaa3e456ba51a66c0294a741d7b60eb4c31c7040443bbd54712c019424078bd533856a9650b39a703a926d5 SHA512 28903282c7672206effa1362fd564cbe4cf5be44264b083a7d14e383f73bccd1b81bcafb5f4f2f56f5e7e05914c660e27668c9ce91b1b9f256ef5358d55ba917
|
||||
DIST xmlts20080827.tar.gz 638940 BLAKE2B c5aab959c6e0698acd5b9be82b48a8ac26f4d01cc03f9acfff20d344f97f4711fc6d4a524ae70457147e8e30c72e27b6726829e1dd21896286aa974ed60774e7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d
|
||||
DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288
|
||||
DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe
|
||||
|
||||
@ -1,68 +0,0 @@
|
||||
do not build test programs as we don't install them
|
||||
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
|
||||
|
||||
-noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
|
||||
+check_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
|
||||
testThreads testC14N testAutomata testRegexp \
|
||||
testReader testapi testModule runtest runsuite testchar \
|
||||
testdict runxmlconf testrecurse testlimits
|
||||
@@ -170,7 +170,7 @@
|
||||
testModule_DEPENDENCIES = $(DEPS)
|
||||
testModule_LDADD= $(LDADDS)
|
||||
|
||||
-noinst_LTLIBRARIES = testdso.la
|
||||
+check_LTLIBRARIES = testdso.la
|
||||
testdso_la_SOURCES = testdso.c
|
||||
testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
|
||||
|
||||
@@ -202,7 +202,7 @@ runxmlconf_LDADD= $(LDADDS)
|
||||
#testOOM_DEPENDENCIES = $(DEPS)
|
||||
#testOOM_LDADD= $(LDADDS)
|
||||
|
||||
-runtests:
|
||||
+runtests: $(check_PROGRAMS)
|
||||
[ -d test ] || $(LN_S) $(srcdir)/test .
|
||||
[ -d result ] || $(LN_S) $(srcdir)/result .
|
||||
$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
|
||||
--- a/doc/examples/Makefile.am
|
||||
+++ b/doc/examples/Makefile.am
|
||||
@@ -13,7 +13,7 @@
|
||||
rebuild: examples.xml index.html
|
||||
.PHONY: rebuild
|
||||
|
||||
-examples.xml: index.py $(noinst_PROGRAMS:=.c)
|
||||
+examples.xml: index.py $(check_PROGRAMS:=.c)
|
||||
cd $(srcdir) && $(PYTHON) index.py
|
||||
$(MAKE) Makefile
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
xpath1.res \
|
||||
xpath2.res
|
||||
|
||||
-noinst_PROGRAMS = \
|
||||
+check_PROGRAMS = \
|
||||
io1 \
|
||||
io2 \
|
||||
parse1 \
|
||||
@@ -99,7 +99,7 @@
|
||||
valgrind:
|
||||
$(MAKE) CHECKER='valgrind' tests
|
||||
|
||||
-tests: $(noinst_PROGRAMS)
|
||||
+tests: $(check_PROGRAMS)
|
||||
test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
|
||||
@(echo '## examples regression tests')
|
||||
@(echo > .memdump)
|
||||
--- a/example/Makefile.am
|
||||
+++ b/example/Makefile.am
|
||||
@@ -1,4 +1,4 @@
|
||||
-noinst_PROGRAMS = gjobread
|
||||
+check_PROGRAMS = gjobread
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include
|
||||
AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS)
|
||||
@ -1,249 +0,0 @@
|
||||
From c1d1f7121194036608bf555f08d3062a36fd344b Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 28 Jun 2016 18:34:52 +0200
|
||||
Subject: Disallow namespace nodes in XPointer ranges
|
||||
|
||||
Namespace nodes must be copied to avoid use-after-free errors.
|
||||
But they don't necessarily have a physical representation in a
|
||||
document, so simply disallow them in XPointer ranges.
|
||||
|
||||
Found with afl-fuzz.
|
||||
|
||||
Fixes CVE-2016-4658.
|
||||
---
|
||||
xpointer.c | 149 +++++++++++++++++++++++--------------------------------------
|
||||
1 file changed, 56 insertions(+), 93 deletions(-)
|
||||
|
||||
diff --git a/xpointer.c b/xpointer.c
|
||||
index a7b03fb..694d120 100644
|
||||
--- a/xpointer.c
|
||||
+++ b/xpointer.c
|
||||
@@ -320,6 +320,45 @@ xmlXPtrRangesEqual(xmlXPathObjectPtr range1, xmlXPathObjectPtr range2) {
|
||||
}
|
||||
|
||||
/**
|
||||
+ * xmlXPtrNewRangeInternal:
|
||||
+ * @start: the starting node
|
||||
+ * @startindex: the start index
|
||||
+ * @end: the ending point
|
||||
+ * @endindex: the ending index
|
||||
+ *
|
||||
+ * Internal function to create a new xmlXPathObjectPtr of type range
|
||||
+ *
|
||||
+ * Returns the newly created object.
|
||||
+ */
|
||||
+static xmlXPathObjectPtr
|
||||
+xmlXPtrNewRangeInternal(xmlNodePtr start, int startindex,
|
||||
+ xmlNodePtr end, int endindex) {
|
||||
+ xmlXPathObjectPtr ret;
|
||||
+
|
||||
+ /*
|
||||
+ * Namespace nodes must be copied (see xmlXPathNodeSetDupNs).
|
||||
+ * Disallow them for now.
|
||||
+ */
|
||||
+ if ((start != NULL) && (start->type == XML_NAMESPACE_DECL))
|
||||
+ return(NULL);
|
||||
+ if ((end != NULL) && (end->type == XML_NAMESPACE_DECL))
|
||||
+ return(NULL);
|
||||
+
|
||||
+ ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
+ if (ret == NULL) {
|
||||
+ xmlXPtrErrMemory("allocating range");
|
||||
+ return(NULL);
|
||||
+ }
|
||||
+ memset(ret, 0, sizeof(xmlXPathObject));
|
||||
+ ret->type = XPATH_RANGE;
|
||||
+ ret->user = start;
|
||||
+ ret->index = startindex;
|
||||
+ ret->user2 = end;
|
||||
+ ret->index2 = endindex;
|
||||
+ return(ret);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
* xmlXPtrNewRange:
|
||||
* @start: the starting node
|
||||
* @startindex: the start index
|
||||
@@ -344,17 +383,7 @@ xmlXPtrNewRange(xmlNodePtr start, int startindex,
|
||||
if (endindex < 0)
|
||||
return(NULL);
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start;
|
||||
- ret->index = startindex;
|
||||
- ret->user2 = end;
|
||||
- ret->index2 = endindex;
|
||||
+ ret = xmlXPtrNewRangeInternal(start, startindex, end, endindex);
|
||||
xmlXPtrRangeCheckOrder(ret);
|
||||
return(ret);
|
||||
}
|
||||
@@ -381,17 +410,8 @@ xmlXPtrNewRangePoints(xmlXPathObjectPtr start, xmlXPathObjectPtr end) {
|
||||
if (end->type != XPATH_POINT)
|
||||
return(NULL);
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start->user;
|
||||
- ret->index = start->index;
|
||||
- ret->user2 = end->user;
|
||||
- ret->index2 = end->index;
|
||||
+ ret = xmlXPtrNewRangeInternal(start->user, start->index, end->user,
|
||||
+ end->index);
|
||||
xmlXPtrRangeCheckOrder(ret);
|
||||
return(ret);
|
||||
}
|
||||
@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(xmlXPathObjectPtr start, xmlNodePtr end) {
|
||||
if (start->type != XPATH_POINT)
|
||||
return(NULL);
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start->user;
|
||||
- ret->index = start->index;
|
||||
- ret->user2 = end;
|
||||
- ret->index2 = -1;
|
||||
+ ret = xmlXPtrNewRangeInternal(start->user, start->index, end, -1);
|
||||
xmlXPtrRangeCheckOrder(ret);
|
||||
return(ret);
|
||||
}
|
||||
@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(xmlNodePtr start, xmlXPathObjectPtr end) {
|
||||
if (end->type != XPATH_POINT)
|
||||
return(NULL);
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start;
|
||||
- ret->index = -1;
|
||||
- ret->user2 = end->user;
|
||||
- ret->index2 = end->index;
|
||||
+ ret = xmlXPtrNewRangeInternal(start, -1, end->user, end->index);
|
||||
xmlXPtrRangeCheckOrder(ret);
|
||||
return(ret);
|
||||
}
|
||||
@@ -486,17 +486,7 @@ xmlXPtrNewRangeNodes(xmlNodePtr start, xmlNodePtr end) {
|
||||
if (end == NULL)
|
||||
return(NULL);
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start;
|
||||
- ret->index = -1;
|
||||
- ret->user2 = end;
|
||||
- ret->index2 = -1;
|
||||
+ ret = xmlXPtrNewRangeInternal(start, -1, end, -1);
|
||||
xmlXPtrRangeCheckOrder(ret);
|
||||
return(ret);
|
||||
}
|
||||
@@ -516,17 +506,7 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {
|
||||
if (start == NULL)
|
||||
return(NULL);
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start;
|
||||
- ret->index = -1;
|
||||
- ret->user2 = NULL;
|
||||
- ret->index2 = -1;
|
||||
+ ret = xmlXPtrNewRangeInternal(start, -1, NULL, -1);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
@@ -541,6 +521,8 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {
|
||||
*/
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
|
||||
+ xmlNodePtr endNode;
|
||||
+ int endIndex;
|
||||
xmlXPathObjectPtr ret;
|
||||
|
||||
if (start == NULL)
|
||||
@@ -549,7 +531,12 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
|
||||
return(NULL);
|
||||
switch (end->type) {
|
||||
case XPATH_POINT:
|
||||
+ endNode = end->user;
|
||||
+ endIndex = end->index;
|
||||
+ break;
|
||||
case XPATH_RANGE:
|
||||
+ endNode = end->user2;
|
||||
+ endIndex = end->index2;
|
||||
break;
|
||||
case XPATH_NODESET:
|
||||
/*
|
||||
@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
|
||||
*/
|
||||
if (end->nodesetval->nodeNr <= 0)
|
||||
return(NULL);
|
||||
+ endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
|
||||
+ endIndex = -1;
|
||||
break;
|
||||
default:
|
||||
/* TODO */
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
|
||||
- if (ret == NULL) {
|
||||
- xmlXPtrErrMemory("allocating range");
|
||||
- return(NULL);
|
||||
- }
|
||||
- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
|
||||
- ret->type = XPATH_RANGE;
|
||||
- ret->user = start;
|
||||
- ret->index = -1;
|
||||
- switch (end->type) {
|
||||
- case XPATH_POINT:
|
||||
- ret->user2 = end->user;
|
||||
- ret->index2 = end->index;
|
||||
- break;
|
||||
- case XPATH_RANGE:
|
||||
- ret->user2 = end->user2;
|
||||
- ret->index2 = end->index2;
|
||||
- break;
|
||||
- case XPATH_NODESET: {
|
||||
- ret->user2 = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
|
||||
- ret->index2 = -1;
|
||||
- break;
|
||||
- }
|
||||
- default:
|
||||
- STRANGE
|
||||
- return(NULL);
|
||||
- }
|
||||
+ ret = xmlXPtrNewRangeInternal(start, -1, endNode, endIndex);
|
||||
xmlXPtrRangeCheckOrder(ret);
|
||||
return(ret);
|
||||
}
|
||||
--
|
||||
cgit v0.12
|
||||
|
||||
@ -1,174 +0,0 @@
|
||||
From 9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 28 Jun 2016 14:22:23 +0200
|
||||
Subject: Fix XPointer paths beginning with range-to
|
||||
|
||||
The old code would invoke the broken xmlXPtrRangeToFunction. range-to
|
||||
isn't really a function but a special kind of location step. Remove
|
||||
this function and always handle range-to in the XPath code.
|
||||
|
||||
The old xmlXPtrRangeToFunction could also be abused to trigger a
|
||||
use-after-free error with the potential for remote code execution.
|
||||
|
||||
Found with afl-fuzz.
|
||||
|
||||
Fixes CVE-2016-5131.
|
||||
---
|
||||
result/XPath/xptr/vidbase | 13 ++++++++
|
||||
test/XPath/xptr/vidbase | 1 +
|
||||
xpath.c | 7 ++++-
|
||||
xpointer.c | 76 ++++-------------------------------------------
|
||||
4 files changed, 26 insertions(+), 71 deletions(-)
|
||||
|
||||
diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase
|
||||
index 8b9e92d..f19193e 100644
|
||||
--- a/result/XPath/xptr/vidbase
|
||||
+++ b/result/XPath/xptr/vidbase
|
||||
@@ -17,3 +17,16 @@ Object is a Location Set:
|
||||
To node
|
||||
ELEMENT p
|
||||
|
||||
+
|
||||
+========================
|
||||
+Expression: xpointer(range-to(id('chapter2')))
|
||||
+Object is a Location Set:
|
||||
+1 : Object is a range :
|
||||
+ From node
|
||||
+ /
|
||||
+ To node
|
||||
+ ELEMENT chapter
|
||||
+ ATTRIBUTE id
|
||||
+ TEXT
|
||||
+ content=chapter2
|
||||
+
|
||||
diff --git a/test/XPath/xptr/vidbase b/test/XPath/xptr/vidbase
|
||||
index b146383..884b106 100644
|
||||
--- a/test/XPath/xptr/vidbase
|
||||
+++ b/test/XPath/xptr/vidbase
|
||||
@@ -1,2 +1,3 @@
|
||||
xpointer(id('chapter1')/p)
|
||||
xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2]))
|
||||
+xpointer(range-to(id('chapter2')))
|
||||
diff --git a/xpath.c b/xpath.c
|
||||
index d992841..5a01b1b 100644
|
||||
--- a/xpath.c
|
||||
+++ b/xpath.c
|
||||
@@ -10691,13 +10691,18 @@ xmlXPathCompPathExpr(xmlXPathParserContextPtr ctxt) {
|
||||
lc = 1;
|
||||
break;
|
||||
} else if ((NXT(len) == '(')) {
|
||||
- /* Note Type or Function */
|
||||
+ /* Node Type or Function */
|
||||
if (xmlXPathIsNodeType(name)) {
|
||||
#ifdef DEBUG_STEP
|
||||
xmlGenericError(xmlGenericErrorContext,
|
||||
"PathExpr: Type search\n");
|
||||
#endif
|
||||
lc = 1;
|
||||
+#ifdef LIBXML_XPTR_ENABLED
|
||||
+ } else if (ctxt->xptr &&
|
||||
+ xmlStrEqual(name, BAD_CAST "range-to")) {
|
||||
+ lc = 1;
|
||||
+#endif
|
||||
} else {
|
||||
#ifdef DEBUG_STEP
|
||||
xmlGenericError(xmlGenericErrorContext,
|
||||
diff --git a/xpointer.c b/xpointer.c
|
||||
index 676c510..d74174a 100644
|
||||
--- a/xpointer.c
|
||||
+++ b/xpointer.c
|
||||
@@ -1332,8 +1332,6 @@ xmlXPtrNewContext(xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin) {
|
||||
ret->here = here;
|
||||
ret->origin = origin;
|
||||
|
||||
- xmlXPathRegisterFunc(ret, (xmlChar *)"range-to",
|
||||
- xmlXPtrRangeToFunction);
|
||||
xmlXPathRegisterFunc(ret, (xmlChar *)"range",
|
||||
xmlXPtrRangeFunction);
|
||||
xmlXPathRegisterFunc(ret, (xmlChar *)"range-inside",
|
||||
@@ -2243,76 +2241,14 @@ xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) {
|
||||
* @nargs: the number of args
|
||||
*
|
||||
* Implement the range-to() XPointer function
|
||||
+ *
|
||||
+ * Obsolete. range-to is not a real function but a special type of location
|
||||
+ * step which is handled in xpath.c.
|
||||
*/
|
||||
void
|
||||
-xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) {
|
||||
- xmlXPathObjectPtr range;
|
||||
- const xmlChar *cur;
|
||||
- xmlXPathObjectPtr res, obj;
|
||||
- xmlXPathObjectPtr tmp;
|
||||
- xmlLocationSetPtr newset = NULL;
|
||||
- xmlNodeSetPtr oldset;
|
||||
- int i;
|
||||
-
|
||||
- if (ctxt == NULL) return;
|
||||
- CHECK_ARITY(1);
|
||||
- /*
|
||||
- * Save the expression pointer since we will have to evaluate
|
||||
- * it multiple times. Initialize the new set.
|
||||
- */
|
||||
- CHECK_TYPE(XPATH_NODESET);
|
||||
- obj = valuePop(ctxt);
|
||||
- oldset = obj->nodesetval;
|
||||
- ctxt->context->node = NULL;
|
||||
-
|
||||
- cur = ctxt->cur;
|
||||
- newset = xmlXPtrLocationSetCreate(NULL);
|
||||
-
|
||||
- for (i = 0; i < oldset->nodeNr; i++) {
|
||||
- ctxt->cur = cur;
|
||||
-
|
||||
- /*
|
||||
- * Run the evaluation with a node list made of a single item
|
||||
- * in the nodeset.
|
||||
- */
|
||||
- ctxt->context->node = oldset->nodeTab[i];
|
||||
- tmp = xmlXPathNewNodeSet(ctxt->context->node);
|
||||
- valuePush(ctxt, tmp);
|
||||
-
|
||||
- xmlXPathEvalExpr(ctxt);
|
||||
- CHECK_ERROR;
|
||||
-
|
||||
- /*
|
||||
- * The result of the evaluation need to be tested to
|
||||
- * decided whether the filter succeeded or not
|
||||
- */
|
||||
- res = valuePop(ctxt);
|
||||
- range = xmlXPtrNewRangeNodeObject(oldset->nodeTab[i], res);
|
||||
- if (range != NULL) {
|
||||
- xmlXPtrLocationSetAdd(newset, range);
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * Cleanup
|
||||
- */
|
||||
- if (res != NULL)
|
||||
- xmlXPathFreeObject(res);
|
||||
- if (ctxt->value == tmp) {
|
||||
- res = valuePop(ctxt);
|
||||
- xmlXPathFreeObject(res);
|
||||
- }
|
||||
-
|
||||
- ctxt->context->node = NULL;
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * The result is used as the new evaluation set.
|
||||
- */
|
||||
- xmlXPathFreeObject(obj);
|
||||
- ctxt->context->node = NULL;
|
||||
- ctxt->context->contextSize = -1;
|
||||
- ctxt->context->proximityPosition = -1;
|
||||
- valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
|
||||
+xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt,
|
||||
+ int nargs ATTRIBUTE_UNUSED) {
|
||||
+ XP_ERROR(XPATH_EXPR_ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
cgit v0.12
|
||||
|
||||
@ -1,202 +0,0 @@
|
||||
From 292be65a52ab9e0eb3a53b4e0be5a57bc6de59d3 Mon Sep 17 00:00:00 2001
|
||||
From: Doran Moppert <dmoppert@redhat.com>
|
||||
Date: Fri, 7 Apr 2017 16:45:56 +0200
|
||||
Subject: [PATCH 6/7] Add an XML_PARSE_NOXXE flag to block all entities loading
|
||||
even local
|
||||
|
||||
For https://bugzilla.gnome.org/show_bug.cgi?id=772726
|
||||
|
||||
* include/libxml/parser.h: Add a new parser flag XML_PARSE_NOXXE
|
||||
* elfgcchack.h, xmlIO.h, xmlIO.c: associated loading routine
|
||||
* include/libxml/xmlerror.h: new error raised
|
||||
* xmllint.c: adds --noxxe flag to activate the option
|
||||
---
|
||||
elfgcchack.h | 10 ++++++++++
|
||||
include/libxml/parser.h | 3 ++-
|
||||
include/libxml/xmlIO.h | 8 ++++++++
|
||||
include/libxml/xmlerror.h | 1 +
|
||||
parser.c | 4 ++++
|
||||
xmlIO.c | 40 +++++++++++++++++++++++++++++++++++-----
|
||||
xmllint.c | 5 +++++
|
||||
7 files changed, 65 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/elfgcchack.h b/elfgcchack.h
|
||||
index 8c52884a..1b81dcde 100644
|
||||
--- a/elfgcchack.h
|
||||
+++ b/elfgcchack.h
|
||||
@@ -6547,6 +6547,16 @@ extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader__int
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifdef bottom_xmlIO
|
||||
+#undef xmlNoXxeExternalEntityLoader
|
||||
+extern __typeof (xmlNoXxeExternalEntityLoader) xmlNoXxeExternalEntityLoader __attribute((alias("xmlNoXxeExternalEntityLoader__internal_alias")));
|
||||
+#else
|
||||
+#ifndef xmlNoXxeExternalEntityLoader
|
||||
+extern __typeof (xmlNoXxeExternalEntityLoader) xmlNoXxeExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
|
||||
+#define xmlNoXxeExternalEntityLoader xmlNoXxeExternalEntityLoader__internal_alias
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
#ifdef bottom_tree
|
||||
#undef xmlNodeAddContent
|
||||
extern __typeof (xmlNodeAddContent) xmlNodeAddContent __attribute((alias("xmlNodeAddContent__internal_alias")));
|
||||
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
|
||||
index 47fbec03..63ca1b97 100644
|
||||
--- a/include/libxml/parser.h
|
||||
+++ b/include/libxml/parser.h
|
||||
@@ -1111,7 +1111,8 @@ typedef enum {
|
||||
XML_PARSE_HUGE = 1<<19,/* relax any hardcoded limit from the parser */
|
||||
XML_PARSE_OLDSAX = 1<<20,/* parse using SAX2 interface before 2.7.0 */
|
||||
XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */
|
||||
- XML_PARSE_BIG_LINES = 1<<22 /* Store big lines numbers in text PSVI field */
|
||||
+ XML_PARSE_BIG_LINES = 1<<22,/* Store big lines numbers in text PSVI field */
|
||||
+ XML_PARSE_NOXXE = 1<<23 /* Forbid any external entity loading */
|
||||
} xmlParserOption;
|
||||
|
||||
XMLPUBFUN void XMLCALL
|
||||
diff --git a/include/libxml/xmlIO.h b/include/libxml/xmlIO.h
|
||||
index 3e41744d..8d3fdef5 100644
|
||||
--- a/include/libxml/xmlIO.h
|
||||
+++ b/include/libxml/xmlIO.h
|
||||
@@ -299,6 +299,14 @@ XMLPUBFUN xmlParserInputPtr XMLCALL
|
||||
const char *ID,
|
||||
xmlParserCtxtPtr ctxt);
|
||||
|
||||
+/*
|
||||
+ * A predefined entity loader external entity expansion
|
||||
+ */
|
||||
+XMLPUBFUN xmlParserInputPtr XMLCALL
|
||||
+ xmlNoXxeExternalEntityLoader (const char *URL,
|
||||
+ const char *ID,
|
||||
+ xmlParserCtxtPtr ctxt);
|
||||
+
|
||||
/*
|
||||
* xmlNormalizeWindowsPath is obsolete, don't use it.
|
||||
* Check xmlCanonicPath in uri.h for a better alternative.
|
||||
diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h
|
||||
index 037c16d5..3036062d 100644
|
||||
--- a/include/libxml/xmlerror.h
|
||||
+++ b/include/libxml/xmlerror.h
|
||||
@@ -470,6 +470,7 @@ typedef enum {
|
||||
XML_IO_EADDRINUSE, /* 1554 */
|
||||
XML_IO_EALREADY, /* 1555 */
|
||||
XML_IO_EAFNOSUPPORT, /* 1556 */
|
||||
+ XML_IO_ILLEGAL_XXE, /* 1557 */
|
||||
XML_XINCLUDE_RECURSION=1600,
|
||||
XML_XINCLUDE_PARSE_VALUE, /* 1601 */
|
||||
XML_XINCLUDE_ENTITY_DEF_MISMATCH, /* 1602 */
|
||||
diff --git a/parser.c b/parser.c
|
||||
index b832406a..8e11c127 100644
|
||||
--- a/parser.c
|
||||
+++ b/parser.c
|
||||
@@ -15352,6 +15352,10 @@ xmlCtxtUseOptionsInternal(xmlParserCtxtPtr ctxt, int options, const char *encodi
|
||||
ctxt->options |= XML_PARSE_NONET;
|
||||
options -= XML_PARSE_NONET;
|
||||
}
|
||||
+ if (options & XML_PARSE_NOXXE) {
|
||||
+ ctxt->options |= XML_PARSE_NOXXE;
|
||||
+ options -= XML_PARSE_NOXXE;
|
||||
+ }
|
||||
if (options & XML_PARSE_COMPACT) {
|
||||
ctxt->options |= XML_PARSE_COMPACT;
|
||||
options -= XML_PARSE_COMPACT;
|
||||
diff --git a/xmlIO.c b/xmlIO.c
|
||||
index 6e61f45a..34881461 100644
|
||||
--- a/xmlIO.c
|
||||
+++ b/xmlIO.c
|
||||
@@ -212,6 +212,7 @@ static const char *IOerr[] = {
|
||||
"adddress in use", /* EADDRINUSE */
|
||||
"already in use", /* EALREADY */
|
||||
"unknown address familly", /* EAFNOSUPPORT */
|
||||
+ "Attempt to load external entity %s", /* XML_IO_ILLEGAL_XXE */
|
||||
};
|
||||
|
||||
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
|
||||
@@ -4057,13 +4058,22 @@ xmlDefaultExternalEntityLoader(const char *URL, const char *ID,
|
||||
xmlGenericError(xmlGenericErrorContext,
|
||||
"xmlDefaultExternalEntityLoader(%s, xxx)\n", URL);
|
||||
#endif
|
||||
- if ((ctxt != NULL) && (ctxt->options & XML_PARSE_NONET)) {
|
||||
+ if (ctxt != NULL) {
|
||||
int options = ctxt->options;
|
||||
|
||||
- ctxt->options -= XML_PARSE_NONET;
|
||||
- ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
|
||||
- ctxt->options = options;
|
||||
- return(ret);
|
||||
+ if (options & XML_PARSE_NOXXE) {
|
||||
+ ctxt->options -= XML_PARSE_NOXXE;
|
||||
+ ret = xmlNoXxeExternalEntityLoader(URL, ID, ctxt);
|
||||
+ ctxt->options = options;
|
||||
+ return(ret);
|
||||
+ }
|
||||
+
|
||||
+ if (options & XML_PARSE_NONET) {
|
||||
+ ctxt->options -= XML_PARSE_NONET;
|
||||
+ ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
|
||||
+ ctxt->options = options;
|
||||
+ return(ret);
|
||||
+ }
|
||||
}
|
||||
#ifdef LIBXML_CATALOG_ENABLED
|
||||
resource = xmlResolveResourceFromCatalog(URL, ID, ctxt);
|
||||
@@ -4164,6 +4174,13 @@ xmlNoNetExternalEntityLoader(const char *URL, const char *ID,
|
||||
xmlParserInputPtr input = NULL;
|
||||
xmlChar *resource = NULL;
|
||||
|
||||
+ if (ctxt == NULL) {
|
||||
+ return(NULL);
|
||||
+ }
|
||||
+ if (ctxt->input_id == 1) {
|
||||
+ return xmlDefaultExternalEntityLoader((const char *) URL, ID, ctxt);
|
||||
+ }
|
||||
+
|
||||
#ifdef LIBXML_CATALOG_ENABLED
|
||||
resource = xmlResolveResourceFromCatalog(URL, ID, ctxt);
|
||||
#endif
|
||||
@@ -4186,5 +4203,18 @@ xmlNoNetExternalEntityLoader(const char *URL, const char *ID,
|
||||
return(input);
|
||||
}
|
||||
|
||||
+xmlParserInputPtr
|
||||
+xmlNoXxeExternalEntityLoader(const char *URL, const char *ID,
|
||||
+ xmlParserCtxtPtr ctxt) {
|
||||
+ if (ctxt == NULL) {
|
||||
+ return(NULL);
|
||||
+ }
|
||||
+ if (ctxt->input_id == 1) {
|
||||
+ return xmlDefaultExternalEntityLoader((const char *) URL, ID, ctxt);
|
||||
+ }
|
||||
+ xmlIOErr(XML_IO_ILLEGAL_XXE, (const char *) URL);
|
||||
+ return(NULL);
|
||||
+}
|
||||
+
|
||||
#define bottom_xmlIO
|
||||
#include "elfgcchack.h"
|
||||
diff --git a/xmllint.c b/xmllint.c
|
||||
index f8eb7ec4..8f304cda 100644
|
||||
--- a/xmllint.c
|
||||
+++ b/xmllint.c
|
||||
@@ -3019,6 +3019,7 @@ static void usage(const char *name) {
|
||||
printf("\t--path 'paths': provide a set of paths for resources\n");
|
||||
printf("\t--load-trace : print trace of all external entities loaded\n");
|
||||
printf("\t--nonet : refuse to fetch DTDs or entities over network\n");
|
||||
+ printf("\t--noxxe : forbid any external entity loading\n");
|
||||
printf("\t--nocompact : do not generate compact text nodes\n");
|
||||
printf("\t--htmlout : output results as HTML\n");
|
||||
printf("\t--nowrap : do not put HTML doc wrapper\n");
|
||||
@@ -3461,6 +3462,10 @@ main(int argc, char **argv) {
|
||||
(!strcmp(argv[i], "--nonet"))) {
|
||||
options |= XML_PARSE_NONET;
|
||||
xmlSetExternalEntityLoader(xmlNoNetExternalEntityLoader);
|
||||
+ } else if ((!strcmp(argv[i], "-noxxe")) ||
|
||||
+ (!strcmp(argv[i], "--noxxe"))) {
|
||||
+ options |= XML_PARSE_NOXXE;
|
||||
+ xmlSetExternalEntityLoader(xmlNoXxeExternalEntityLoader);
|
||||
} else if ((!strcmp(argv[i], "-nocompact")) ||
|
||||
(!strcmp(argv[i], "--nocompact"))) {
|
||||
options &= ~XML_PARSE_COMPACT;
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
From d815758b6a8c9dee8155268e49b5ef3b80135a14 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 6 Jun 2017 12:56:28 +0200
|
||||
Subject: [PATCH 1/3] Fix type confusion in xmlValidateOneNamespace
|
||||
|
||||
Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types on
|
||||
namespace declarations make no practical sense anyway.
|
||||
|
||||
Fixes bug 780228.
|
||||
|
||||
Found with libFuzzer and ASan.
|
||||
---
|
||||
valid.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/valid.c b/valid.c
|
||||
index 8075d3a0..c51ea290 100644
|
||||
--- a/valid.c
|
||||
+++ b/valid.c
|
||||
@@ -4627,6 +4627,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
|
||||
}
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * Casting ns to xmlAttrPtr is wrong. We'd need separate functions
|
||||
+ * xmlAddID and xmlAddRef for namespace declarations, but it makes
|
||||
+ * no practical sense to use ID types anyway.
|
||||
+ */
|
||||
+#if 0
|
||||
/* Validity Constraint: ID uniqueness */
|
||||
if (attrDecl->atype == XML_ATTRIBUTE_ID) {
|
||||
if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)
|
||||
@@ -4638,6 +4644,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
|
||||
if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)
|
||||
ret = 0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
/* Validity Constraint: Notation Attributes */
|
||||
if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,63 +0,0 @@
|
||||
From 8952ce48a5fa1d3de1f087f10e8b6e47bb59f4e3 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Veillard <veillard@redhat.com>
|
||||
Date: Wed, 7 Jun 2017 16:47:36 +0200
|
||||
Subject: [PATCH 1/7] Fix NULL pointer deref in xmlDumpElementContent
|
||||
|
||||
Can only be triggered in recovery mode.
|
||||
|
||||
Fixes bug 758422 (CVE-2017-5969).
|
||||
---
|
||||
valid.c | 24 ++++++++++++++----------
|
||||
1 file changed, 14 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/valid.c b/valid.c
|
||||
index 19f84b82..0a8e58ab 100644
|
||||
--- a/valid.c
|
||||
+++ b/valid.c
|
||||
@@ -1172,29 +1172,33 @@ xmlDumpElementContent(xmlBufferPtr buf, xmlElementContentPtr content, int glob)
|
||||
xmlBufferWriteCHAR(buf, content->name);
|
||||
break;
|
||||
case XML_ELEMENT_CONTENT_SEQ:
|
||||
- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
|
||||
- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
|
||||
+ if ((content->c1 != NULL) &&
|
||||
+ ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
|
||||
+ (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))
|
||||
xmlDumpElementContent(buf, content->c1, 1);
|
||||
else
|
||||
xmlDumpElementContent(buf, content->c1, 0);
|
||||
xmlBufferWriteChar(buf, " , ");
|
||||
- if ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
|
||||
- ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
|
||||
- (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
|
||||
+ if ((content->c2 != NULL) &&
|
||||
+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
|
||||
+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
|
||||
+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))
|
||||
xmlDumpElementContent(buf, content->c2, 1);
|
||||
else
|
||||
xmlDumpElementContent(buf, content->c2, 0);
|
||||
break;
|
||||
case XML_ELEMENT_CONTENT_OR:
|
||||
- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
|
||||
- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
|
||||
+ if ((content->c1 != NULL) &&
|
||||
+ ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
|
||||
+ (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))
|
||||
xmlDumpElementContent(buf, content->c1, 1);
|
||||
else
|
||||
xmlDumpElementContent(buf, content->c1, 0);
|
||||
xmlBufferWriteChar(buf, " | ");
|
||||
- if ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
|
||||
- ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
|
||||
- (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
|
||||
+ if ((content->c2 != NULL) &&
|
||||
+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
|
||||
+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
|
||||
+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))
|
||||
xmlDumpElementContent(buf, content->c2, 1);
|
||||
else
|
||||
xmlDumpElementContent(buf, content->c2, 0);
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
From 9ea49a06b9421b6a3a9c243fb1ec23b19bd6b049 Mon Sep 17 00:00:00 2001
|
||||
From: Neel Mehta <nmehta@google.com>
|
||||
Date: Fri, 7 Apr 2017 17:43:02 +0200
|
||||
Subject: [PATCH 7/7] Prevent unwanted external entity reference
|
||||
|
||||
For https://bugzilla.gnome.org/show_bug.cgi?id=780691
|
||||
|
||||
* parser.c: add a specific check to avoid PE reference
|
||||
---
|
||||
parser.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/parser.c b/parser.c
|
||||
index 8e11c127..e8e962bb 100644
|
||||
--- a/parser.c
|
||||
+++ b/parser.c
|
||||
@@ -8125,6 +8125,15 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt)
|
||||
if (xmlPushInput(ctxt, input) < 0)
|
||||
return;
|
||||
} else {
|
||||
+ if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
|
||||
+ ((ctxt->options & XML_PARSE_NOENT) == 0) &&
|
||||
+ ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
|
||||
+ ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
|
||||
+ ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
|
||||
+ (ctxt->replaceEntities == 0) &&
|
||||
+ (ctxt->validate == 0))
|
||||
+ return;
|
||||
+
|
||||
/*
|
||||
* TODO !!!
|
||||
* handle the extra spaces added before and after
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
From 43cd3b6222bda2332e963eb1c9ead78f29912b0a Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Veillard <veillard@redhat.com>
|
||||
Date: Fri, 7 Apr 2017 17:13:28 +0200
|
||||
Subject: [PATCH 2/3] Increase buffer space for port in HTTP redirect support
|
||||
|
||||
For https://bugzilla.gnome.org/show_bug.cgi?id=780690
|
||||
|
||||
nanohttp.c: the code wrongly assumed a short int port value.
|
||||
---
|
||||
nanohttp.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/nanohttp.c b/nanohttp.c
|
||||
index 26e4290e..9c17530e 100644
|
||||
--- a/nanohttp.c
|
||||
+++ b/nanohttp.c
|
||||
@@ -1423,9 +1423,9 @@ retry:
|
||||
if (ctxt->port != 80) {
|
||||
/* reserve space for ':xxxxx', incl. potential proxy */
|
||||
if (proxy)
|
||||
- blen += 12;
|
||||
+ blen += 17;
|
||||
else
|
||||
- blen += 6;
|
||||
+ blen += 11;
|
||||
}
|
||||
bp = (char*)xmlMallocAtomic(blen);
|
||||
if ( bp == NULL ) {
|
||||
--
|
||||
2.14.1
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,316 +0,0 @@
|
||||
From 9c95d1b7f3951efe09df66ec41d7b19d6283084d Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Mon, 5 Jun 2017 15:37:17 +0200
|
||||
Subject: [PATCH 3/7] Fix handling of parameter-entity references
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There were two bugs where parameter-entity references could lead to an
|
||||
unexpected change of the input buffer in xmlParseNameComplex and
|
||||
xmlDictLookup being called with an invalid pointer.
|
||||
|
||||
Percent sign in DTD Names
|
||||
=========================
|
||||
|
||||
The NEXTL macro used to call xmlParserHandlePEReference. When parsing
|
||||
"complex" names inside the DTD, this could result in entity expansion
|
||||
which created a new input buffer. The fix is to simply remove the call
|
||||
to xmlParserHandlePEReference from the NEXTL macro. This is safe because
|
||||
no users of the macro require expansion of parameter entities.
|
||||
|
||||
- xmlParseNameComplex
|
||||
- xmlParseNCNameComplex
|
||||
- xmlParseNmtoken
|
||||
|
||||
The percent sign is not allowed in names, which are grammatical tokens.
|
||||
|
||||
- xmlParseEntityValue
|
||||
|
||||
Parameter-entity references in entity values are expanded but this
|
||||
happens in a separate step in this function.
|
||||
|
||||
- xmlParseSystemLiteral
|
||||
|
||||
Parameter-entity references are ignored in the system literal.
|
||||
|
||||
- xmlParseAttValueComplex
|
||||
- xmlParseCharDataComplex
|
||||
- xmlParseCommentComplex
|
||||
- xmlParsePI
|
||||
- xmlParseCDSect
|
||||
|
||||
Parameter-entity references are ignored outside the DTD.
|
||||
|
||||
- xmlLoadEntityContent
|
||||
|
||||
This function is only called from xmlStringLenDecodeEntities and
|
||||
entities are replaced in a separate step immediately after the function
|
||||
call.
|
||||
|
||||
This bug could also be triggered with an internal subset and double
|
||||
entity expansion.
|
||||
|
||||
This fixes bug 766956 initially reported by Wei Lei and independently by
|
||||
Chromium's ClusterFuzz, Hanno Böck, and Marco Grassi. Thanks to everyone
|
||||
involved.
|
||||
|
||||
xmlParseNameComplex with XML_PARSE_OLD10
|
||||
========================================
|
||||
|
||||
When parsing Names inside an expanded parameter entity with the
|
||||
XML_PARSE_OLD10 option, xmlParseNameComplex would call xmlGROW via the
|
||||
GROW macro if the input buffer was exhausted. At the end of the
|
||||
parameter entity's replacement text, this function would then call
|
||||
xmlPopInput which invalidated the input buffer.
|
||||
|
||||
There should be no need to invoke GROW in this situation because the
|
||||
buffer is grown periodically every XML_PARSER_CHUNK_SIZE characters and,
|
||||
at least for UTF-8, in xmlCurrentChar. This also matches the code path
|
||||
executed when XML_PARSE_OLD10 is not set.
|
||||
|
||||
This fixes bugs 781205 (CVE-2017-9049) and 781361 (CVE-2017-9050).
|
||||
Thanks to Marcel Böhme and Thuan Pham for the report.
|
||||
|
||||
Additional hardening
|
||||
====================
|
||||
|
||||
A separate check was added in xmlParseNameComplex to validate the
|
||||
buffer size.
|
||||
---
|
||||
Makefile.am | 18 ++++++++++++++++++
|
||||
parser.c | 18 ++++++++++--------
|
||||
result/errors10/781205.xml | 0
|
||||
result/errors10/781205.xml.err | 21 +++++++++++++++++++++
|
||||
result/errors10/781361.xml | 0
|
||||
result/errors10/781361.xml.err | 13 +++++++++++++
|
||||
result/valid/766956.xml | 0
|
||||
result/valid/766956.xml.err | 9 +++++++++
|
||||
result/valid/766956.xml.err.rdr | 10 ++++++++++
|
||||
runtest.c | 3 +++
|
||||
test/errors10/781205.xml | 3 +++
|
||||
test/errors10/781361.xml | 3 +++
|
||||
test/valid/766956.xml | 2 ++
|
||||
test/valid/dtds/766956.dtd | 2 ++
|
||||
14 files changed, 94 insertions(+), 8 deletions(-)
|
||||
create mode 100644 result/errors10/781205.xml
|
||||
create mode 100644 result/errors10/781205.xml.err
|
||||
create mode 100644 result/errors10/781361.xml
|
||||
create mode 100644 result/errors10/781361.xml.err
|
||||
create mode 100644 result/valid/766956.xml
|
||||
create mode 100644 result/valid/766956.xml.err
|
||||
create mode 100644 result/valid/766956.xml.err.rdr
|
||||
create mode 100644 test/errors10/781205.xml
|
||||
create mode 100644 test/errors10/781361.xml
|
||||
create mode 100644 test/valid/766956.xml
|
||||
create mode 100644 test/valid/dtds/766956.dtd
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 3b52bae7..bf20124e 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -422,6 +422,24 @@ Errtests : xmllint$(EXEEXT)
|
||||
if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
|
||||
rm result.$$name error.$$name ; \
|
||||
fi ; fi ; done)
|
||||
+ @echo "## Error cases regression tests (old 1.0)"
|
||||
+ -@(for i in $(srcdir)/test/errors10/*.xml ; do \
|
||||
+ name=`basename $$i`; \
|
||||
+ if [ ! -d $$i ] ; then \
|
||||
+ if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \
|
||||
+ echo New test file $$name ; \
|
||||
+ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \
|
||||
+ 2> $(srcdir)/result/errors10/$$name.err \
|
||||
+ > $(srcdir)/result/errors10/$$name ; \
|
||||
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
|
||||
+ else \
|
||||
+ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \
|
||||
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
|
||||
+ diff $(srcdir)/result/errors10/$$name result.$$name ; \
|
||||
+ diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \
|
||||
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
|
||||
+ rm result.$$name error.$$name ; \
|
||||
+ fi ; fi ; done)
|
||||
@echo "## Error cases stream regression tests"
|
||||
-@(for i in $(srcdir)/test/errors/*.xml ; do \
|
||||
name=`basename $$i`; \
|
||||
diff --git a/parser.c b/parser.c
|
||||
index 53a6b7f0..b832406a 100644
|
||||
--- a/parser.c
|
||||
+++ b/parser.c
|
||||
@@ -2115,7 +2115,6 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) {
|
||||
ctxt->input->line++; ctxt->input->col = 1; \
|
||||
} else ctxt->input->col++; \
|
||||
ctxt->input->cur += l; \
|
||||
- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
|
||||
} while (0)
|
||||
|
||||
#define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)
|
||||
@@ -3406,13 +3405,6 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
|
||||
len += l;
|
||||
NEXTL(l);
|
||||
c = CUR_CHAR(l);
|
||||
- if (c == 0) {
|
||||
- count = 0;
|
||||
- GROW;
|
||||
- if (ctxt->instate == XML_PARSER_EOF)
|
||||
- return(NULL);
|
||||
- c = CUR_CHAR(l);
|
||||
- }
|
||||
}
|
||||
}
|
||||
if ((len > XML_MAX_NAME_LENGTH) &&
|
||||
@@ -3420,6 +3412,16 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
|
||||
xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name");
|
||||
return(NULL);
|
||||
}
|
||||
+ if (ctxt->input->cur - ctxt->input->base < len) {
|
||||
+ /*
|
||||
+ * There were a couple of bugs where PERefs lead to to a change
|
||||
+ * of the buffer. Check the buffer size to avoid passing an invalid
|
||||
+ * pointer to xmlDictLookup.
|
||||
+ */
|
||||
+ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
|
||||
+ "unexpected change of input buffer");
|
||||
+ return (NULL);
|
||||
+ }
|
||||
if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))
|
||||
return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len));
|
||||
return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
|
||||
diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err
|
||||
new file mode 100644
|
||||
index 00000000..da15c3f7
|
||||
--- /dev/null
|
||||
+++ b/result/errors10/781205.xml.err
|
||||
@@ -0,0 +1,21 @@
|
||||
+Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
||||
+
|
||||
+ %a;
|
||||
+ ^
|
||||
+Entity: line 1:
|
||||
+<:0000
|
||||
+^
|
||||
+Entity: line 1: parser error : DOCTYPE improperly terminated
|
||||
+ %a;
|
||||
+ ^
|
||||
+Entity: line 1:
|
||||
+<:0000
|
||||
+^
|
||||
+namespace error : Failed to parse QName ':0000'
|
||||
+ %a;
|
||||
+ ^
|
||||
+<:0000
|
||||
+ ^
|
||||
+./test/errors10/781205.xml:4: parser error : Couldn't find end of Start Tag :0000 line 1
|
||||
+
|
||||
+^
|
||||
diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err
|
||||
new file mode 100644
|
||||
index 00000000..655f41a2
|
||||
--- /dev/null
|
||||
+++ b/result/errors10/781361.xml.err
|
||||
@@ -0,0 +1,13 @@
|
||||
+./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected
|
||||
+
|
||||
+^
|
||||
+./test/errors10/781361.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
||||
+
|
||||
+
|
||||
+^
|
||||
+./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated
|
||||
+
|
||||
+^
|
||||
+./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found
|
||||
+
|
||||
+^
|
||||
diff --git a/result/valid/766956.xml b/result/valid/766956.xml
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err
|
||||
new file mode 100644
|
||||
index 00000000..34b1dae6
|
||||
--- /dev/null
|
||||
+++ b/result/valid/766956.xml.err
|
||||
@@ -0,0 +1,9 @@
|
||||
+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
|
||||
+%ä%ent;
|
||||
+ ^
|
||||
+Entity: line 1: parser error : Content error in the external subset
|
||||
+ %ent;
|
||||
+ ^
|
||||
+Entity: line 1:
|
||||
+value
|
||||
+^
|
||||
diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr
|
||||
new file mode 100644
|
||||
index 00000000..77603462
|
||||
--- /dev/null
|
||||
+++ b/result/valid/766956.xml.err.rdr
|
||||
@@ -0,0 +1,10 @@
|
||||
+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
|
||||
+%ä%ent;
|
||||
+ ^
|
||||
+Entity: line 1: parser error : Content error in the external subset
|
||||
+ %ent;
|
||||
+ ^
|
||||
+Entity: line 1:
|
||||
+value
|
||||
+^
|
||||
+./test/valid/766956.xml : failed to parse
|
||||
diff --git a/runtest.c b/runtest.c
|
||||
index 7d030bdc..cd233da9 100644
|
||||
--- a/runtest.c
|
||||
+++ b/runtest.c
|
||||
@@ -4202,6 +4202,9 @@ testDesc testDescriptions[] = {
|
||||
{ "Error cases regression tests",
|
||||
errParseTest, "./test/errors/*.xml", "result/errors/", "", ".err",
|
||||
0 },
|
||||
+ { "Error cases regression tests (old 1.0)",
|
||||
+ errParseTest, "./test/errors10/*.xml", "result/errors10/", "", ".err",
|
||||
+ XML_PARSE_OLD10 },
|
||||
#ifdef LIBXML_READER_ENABLED
|
||||
{ "Error cases stream regression tests",
|
||||
streamParseTest, "./test/errors/*.xml", "result/errors/", NULL, ".str",
|
||||
diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml
|
||||
new file mode 100644
|
||||
index 00000000..d9e9e839
|
||||
--- /dev/null
|
||||
+++ b/test/errors10/781205.xml
|
||||
@@ -0,0 +1,3 @@
|
||||
+<!DOCTYPE D [
|
||||
+ <!ENTITY % a "<:0000">
|
||||
+ %a;
|
||||
diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml
|
||||
new file mode 100644
|
||||
index 00000000..67476bcb
|
||||
--- /dev/null
|
||||
+++ b/test/errors10/781361.xml
|
||||
@@ -0,0 +1,3 @@
|
||||
+<!DOCTYPE doc [
|
||||
+ <!ENTITY % elem "<!ELEMENT e0000000000">
|
||||
+ %elem;
|
||||
diff --git a/test/valid/766956.xml b/test/valid/766956.xml
|
||||
new file mode 100644
|
||||
index 00000000..19a95a0e
|
||||
--- /dev/null
|
||||
+++ b/test/valid/766956.xml
|
||||
@@ -0,0 +1,2 @@
|
||||
+<!DOCTYPE test SYSTEM "dtds/766956.dtd">
|
||||
+<test/>
|
||||
diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd
|
||||
new file mode 100644
|
||||
index 00000000..dddde68b
|
||||
--- /dev/null
|
||||
+++ b/test/valid/dtds/766956.dtd
|
||||
@@ -0,0 +1,2 @@
|
||||
+<!ENTITY % ent "value">
|
||||
+%ä%ent;
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
From a1fb9a4f511d89f0738b62cabd6d92bfd9eb94a9 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 28 Jun 2016 14:19:58 +0200
|
||||
Subject: [PATCH 3/3] Fix comparison with root node in xmlXPathCmpNodes
|
||||
|
||||
This change has already been made in xmlXPathCmpNodesExt but not in
|
||||
xmlXPathCmpNodes.
|
||||
---
|
||||
xpath.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xpath.c b/xpath.c
|
||||
index 67afbca5..5a01b1b3 100644
|
||||
--- a/xpath.c
|
||||
+++ b/xpath.c
|
||||
@@ -3342,13 +3342,13 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr node2) {
|
||||
* compute depth to root
|
||||
*/
|
||||
for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
|
||||
- if (cur == node1)
|
||||
+ if (cur->parent == node1)
|
||||
return(1);
|
||||
depth2++;
|
||||
}
|
||||
root = cur;
|
||||
for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
|
||||
- if (cur == node2)
|
||||
+ if (cur->parent == node2)
|
||||
return(-1);
|
||||
depth1++;
|
||||
}
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
From df4f9bdc7a37908ded8bd1fec4f75509eaa156de Mon Sep 17 00:00:00 2001
|
||||
From: David Kilzer <ddkilzer@apple.com>
|
||||
Date: Tue, 4 Jul 2017 18:38:03 +0200
|
||||
Subject: [PATCH 5/7] Heap-buffer-overflow read of size 1 in
|
||||
xmlFAParsePosCharGroup
|
||||
|
||||
Credit to OSS-Fuzz.
|
||||
|
||||
Add a check to xmlFAParseCharRange() for the end of the buffer
|
||||
to prevent reading past the end of it.
|
||||
|
||||
This fixes Bug 784017.
|
||||
---
|
||||
xmlregexp.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xmlregexp.c b/xmlregexp.c
|
||||
index ca3b4f46..6676c2a8 100644
|
||||
--- a/xmlregexp.c
|
||||
+++ b/xmlregexp.c
|
||||
@@ -5051,7 +5051,7 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
|
||||
return;
|
||||
}
|
||||
len = 1;
|
||||
- } else if ((cur != 0x5B) && (cur != 0x5D)) {
|
||||
+ } else if ((cur != '\0') && (cur != 0x5B) && (cur != 0x5D)) {
|
||||
end = CUR_SCHAR(ctxt->cur, len);
|
||||
} else {
|
||||
ERROR("Expecting the end of a char range");
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,50 +0,0 @@
|
||||
From e905f08123e4a6e7731549e6f09dadff4cab65bd Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Sun, 26 Jun 2016 12:38:28 +0200
|
||||
Subject: Fix more NULL pointer derefs in xpointer.c
|
||||
|
||||
Found with afl-fuzz.
|
||||
---
|
||||
xpointer.c | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xpointer.c b/xpointer.c
|
||||
index 694d120..e643ee9 100644
|
||||
--- a/xpointer.c
|
||||
+++ b/xpointer.c
|
||||
@@ -542,7 +542,7 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
|
||||
/*
|
||||
* Empty set ...
|
||||
*/
|
||||
- if (end->nodesetval->nodeNr <= 0)
|
||||
+ if ((end->nodesetval == NULL) || (end->nodesetval->nodeNr <= 0))
|
||||
return(NULL);
|
||||
endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
|
||||
endIndex = -1;
|
||||
@@ -1361,7 +1361,7 @@ xmlXPtrEval(const xmlChar *str, xmlXPathContextPtr ctx) {
|
||||
*/
|
||||
xmlNodeSetPtr set;
|
||||
set = tmp->nodesetval;
|
||||
- if ((set->nodeNr != 1) ||
|
||||
+ if ((set == NULL) || (set->nodeNr != 1) ||
|
||||
(set->nodeTab[0] != (xmlNodePtr) ctx->doc))
|
||||
stack++;
|
||||
} else
|
||||
@@ -2034,9 +2034,11 @@ xmlXPtrRangeFunction(xmlXPathParserContextPtr ctxt, int nargs) {
|
||||
xmlXPathFreeObject(set);
|
||||
XP_ERROR(XPATH_MEMORY_ERROR);
|
||||
}
|
||||
- for (i = 0;i < oldset->locNr;i++) {
|
||||
- xmlXPtrLocationSetAdd(newset,
|
||||
- xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
|
||||
+ if (oldset != NULL) {
|
||||
+ for (i = 0;i < oldset->locNr;i++) {
|
||||
+ xmlXPtrLocationSetAdd(newset,
|
||||
+ xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
|
||||
+ }
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
cgit v0.12
|
||||
|
||||
@ -1,57 +0,0 @@
|
||||
From d8083bf77955b7879c1290f0c0a24ab8cc70f7fb Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Sat, 25 Jun 2016 12:35:50 +0200
|
||||
Subject: Fix NULL pointer deref in XPointer range-to
|
||||
|
||||
- Check for errors after evaluating first operand.
|
||||
- Add sanity check for empty stack.
|
||||
|
||||
Found with afl-fuzz.
|
||||
---
|
||||
result/XPath/xptr/viderror | 4 ++++
|
||||
test/XPath/xptr/viderror | 1 +
|
||||
xpath.c | 7 ++++++-
|
||||
3 files changed, 11 insertions(+), 1 deletion(-)
|
||||
create mode 100644 result/XPath/xptr/viderror
|
||||
create mode 100644 test/XPath/xptr/viderror
|
||||
|
||||
diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror
|
||||
new file mode 100644
|
||||
index 0000000..d589882
|
||||
--- /dev/null
|
||||
+++ b/result/XPath/xptr/viderror
|
||||
@@ -0,0 +1,4 @@
|
||||
+
|
||||
+========================
|
||||
+Expression: xpointer(non-existing-fn()/range-to(id('chapter2')))
|
||||
+Object is empty (NULL)
|
||||
diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror
|
||||
new file mode 100644
|
||||
index 0000000..da8c53b
|
||||
--- /dev/null
|
||||
+++ b/test/XPath/xptr/viderror
|
||||
@@ -0,0 +1 @@
|
||||
+xpointer(non-existing-fn()/range-to(id('chapter2')))
|
||||
diff --git a/xpath.c b/xpath.c
|
||||
index 113bce6..751665b 100644
|
||||
--- a/xpath.c
|
||||
+++ b/xpath.c
|
||||
@@ -14005,9 +14005,14 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op)
|
||||
xmlNodeSetPtr oldset;
|
||||
int i, j;
|
||||
|
||||
- if (op->ch1 != -1)
|
||||
+ if (op->ch1 != -1) {
|
||||
total +=
|
||||
xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);
|
||||
+ CHECK_ERROR0;
|
||||
+ }
|
||||
+ if (ctxt->value == NULL) {
|
||||
+ XP_ERROR0(XPATH_INVALID_OPERAND);
|
||||
+ }
|
||||
if (op->ch2 == -1)
|
||||
return (total);
|
||||
|
||||
--
|
||||
cgit v0.12
|
||||
|
||||
@ -1,66 +0,0 @@
|
||||
From 8bc6baccc7da291c2338b8d95953ea487b0b3ca1 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Henrie <alexhenrie24@gmail.com>
|
||||
Date: Thu, 26 May 2016 17:38:35 -0600
|
||||
Subject: [PATCH 2/7] Fix attribute decoding during XML schema validation
|
||||
|
||||
For https://bugzilla.gnome.org/show_bug.cgi?id=766834
|
||||
|
||||
vctxt->parserCtxt is always NULL in xmlSchemaSAXHandleStartElementNs,
|
||||
so this function can't call xmlStringLenDecodeEntities to decode the
|
||||
entities.
|
||||
---
|
||||
xmlschemas.c | 30 +++++++++++++++++++++++++-----
|
||||
1 file changed, 25 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xmlschemas.c b/xmlschemas.c
|
||||
index e1b3a4f0..59535e5c 100644
|
||||
--- a/xmlschemas.c
|
||||
+++ b/xmlschemas.c
|
||||
@@ -27391,6 +27391,7 @@ xmlSchemaSAXHandleStartElementNs(void *ctx,
|
||||
* attributes yet.
|
||||
*/
|
||||
if (nb_attributes != 0) {
|
||||
+ int valueLen, k, l;
|
||||
xmlChar *value;
|
||||
|
||||
for (j = 0, i = 0; i < nb_attributes; i++, j += 5) {
|
||||
@@ -27400,12 +27401,31 @@ xmlSchemaSAXHandleStartElementNs(void *ctx,
|
||||
* libxml2 differs from normal SAX here in that it escapes all ampersands
|
||||
* as & instead of delivering the raw converted string. Changing the
|
||||
* behavior at this point would break applications that use this API, so
|
||||
- * we are forced to work around it. There is no danger of accidentally
|
||||
- * decoding some entity other than & in this step because without
|
||||
- * unescaped ampersands there can be no other entities in the string.
|
||||
+ * we are forced to work around it.
|
||||
*/
|
||||
- value = xmlStringLenDecodeEntities(vctxt->parserCtxt, attributes[j+3],
|
||||
- attributes[j+4] - attributes[j+3], XML_SUBSTITUTE_REF, 0, 0, 0);
|
||||
+ valueLen = attributes[j+4] - attributes[j+3];
|
||||
+ value = xmlMallocAtomic(valueLen + 1);
|
||||
+ if (value == NULL) {
|
||||
+ xmlSchemaVErrMemory(vctxt,
|
||||
+ "allocating string for decoded attribute",
|
||||
+ NULL);
|
||||
+ goto internal_error;
|
||||
+ }
|
||||
+ for (k = 0, l = 0; k < valueLen; l++) {
|
||||
+ if (k < valueLen - 4 &&
|
||||
+ attributes[j+3][k+0] == '&' &&
|
||||
+ attributes[j+3][k+1] == '#' &&
|
||||
+ attributes[j+3][k+2] == '3' &&
|
||||
+ attributes[j+3][k+3] == '8' &&
|
||||
+ attributes[j+3][k+4] == ';') {
|
||||
+ value[l] = '&';
|
||||
+ k += 5;
|
||||
+ } else {
|
||||
+ value[l] = attributes[j+3][k];
|
||||
+ k++;
|
||||
+ }
|
||||
+ }
|
||||
+ value[l] = '\0';
|
||||
/*
|
||||
* TODO: Set the node line.
|
||||
*/
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,231 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
|
||||
PYTHON_REQ_USE="xml"
|
||||
|
||||
inherit libtool flag-o-matic ltprune python-r1 autotools prefix multilib-minimal
|
||||
|
||||
DESCRIPTION="Version 2 of the library to manipulate XML files"
|
||||
HOMEPAGE="http://www.xmlsoft.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
IUSE="debug examples icu ipv6 lzma python readline static-libs test"
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
|
||||
XSTS_NAME_1="xmlschema2002-01-16"
|
||||
XSTS_NAME_2="xmlschema2004-01-14"
|
||||
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
|
||||
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
|
||||
XMLCONF_TARBALL="xmlts20080827.tar.gz"
|
||||
|
||||
SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz
|
||||
test? (
|
||||
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
|
||||
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
|
||||
http://www.w3.org/XML/Test/${XMLCONF_TARBALL} )"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
|
||||
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
|
||||
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
readline? ( sys-libs/readline:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-util/gtk-doc-am
|
||||
virtual/pkgconfig
|
||||
hppa? ( >=sys-devel/binutils-2.15.92.0.2 )
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${PN}-${PV%_rc*}"
|
||||
|
||||
MULTILIB_CHOST_TOOLS=(
|
||||
/usr/bin/xml2-config
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
# ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR,
|
||||
# as they are needed as tarballs in ${S}/xstc instead and not unpacked
|
||||
unpack ${P/_rc/-rc}.tar.gz
|
||||
cd "${S}" || die
|
||||
|
||||
if use test; then
|
||||
cp "${DISTDIR}/${XSTS_TARBALL_1}" \
|
||||
"${DISTDIR}/${XSTS_TARBALL_2}" \
|
||||
"${S}"/xstc/ \
|
||||
|| die "Failed to install test tarballs"
|
||||
unpack ${XMLCONF_TARBALL}
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
DOCS=( AUTHORS ChangeLog NEWS README* TODO* )
|
||||
|
||||
# Patches needed for prefix support
|
||||
eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
|
||||
|
||||
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
|
||||
|
||||
# Fix build for Windows platform
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
|
||||
eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
|
||||
|
||||
# Disable programs that we don't actually install.
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760457
|
||||
eapply "${FILESDIR}"/${PN}-2.9.2-disable-tests.patch
|
||||
|
||||
# Fix python detection, bug #567066
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
|
||||
eapply "${FILESDIR}"/${PN}-2.9.2-python-ABIFLAG.patch
|
||||
|
||||
# Apply round of security patches wrt bugs
|
||||
# 589816, 597112, 597114, 597116. This will be included
|
||||
# in the next upstream release
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-CVE-2016-4658.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-CVE-2016-5131.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-nullptrderef.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-nullptrderef2.patch
|
||||
|
||||
# Apply round of security patches wrt bugs:
|
||||
# 599192, 586886, 618604, 622914, 605208, 623206
|
||||
# This will be included in the next upstream release
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-5969.patch
|
||||
eapply "${FILESDIR}"/${P}-osd-validation.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-9049-9050.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-9047-9048.patch
|
||||
eapply "${FILESDIR}"/${P}-heap-buffer-overflow.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2016-9318.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-7375.patch
|
||||
|
||||
# Avoid final linking arguments for python modules
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
|
||||
fi
|
||||
|
||||
# Please do not remove, as else we get references to PORTAGE_TMPDIR
|
||||
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
|
||||
# We now need to run eautoreconf at the end to prevent maintainer mode.
|
||||
# elibtoolize
|
||||
# epunt_cxx # if we don't eautoreconf
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# filter seemingly problematic CFLAGS (#26320)
|
||||
filter-flags -fprefetch-loop-arrays -funroll-loops
|
||||
|
||||
# USE zlib support breaks gnome2
|
||||
# (libgnomeprint for instance fails to compile with
|
||||
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
|
||||
|
||||
# The meaning of the 'debug' USE flag does not apply to the --with-debug
|
||||
# switch (enabling the libxml2 debug module). See bug #100898.
|
||||
|
||||
# --with-mem-debug causes unusual segmentation faults (bug #105120).
|
||||
|
||||
libxml2_configure() {
|
||||
ECONF_SOURCE="${S}" econf \
|
||||
--with-html-subdir=${PF}/html \
|
||||
$(use_with debug run-debug) \
|
||||
$(use_with icu) \
|
||||
$(use_with lzma) \
|
||||
$(use_enable ipv6) \
|
||||
$(use_enable static-libs static) \
|
||||
$(multilib_native_use_with readline) \
|
||||
$(multilib_native_use_with readline history) \
|
||||
"$@"
|
||||
}
|
||||
|
||||
libxml2_py_configure() {
|
||||
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
|
||||
run_in_build_dir libxml2_configure "--with-python=${ROOT%/}${PYTHON}" # odd build system, also see bug #582130
|
||||
}
|
||||
|
||||
libxml2_configure --without-python # build python bindings separately
|
||||
|
||||
if multilib_is_native_abi && use python; then
|
||||
python_foreach_impl libxml2_py_configure
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
default
|
||||
if multilib_is_native_abi && use python; then
|
||||
local native_builddir=${BUILD_DIR}
|
||||
python_foreach_impl libxml2_py_emake top_builddir="${native_builddir}" all
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
default
|
||||
multilib_is_native_abi && use python && python_foreach_impl libxml2_py_emake test
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" \
|
||||
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples install
|
||||
|
||||
if multilib_is_native_abi && use python; then
|
||||
python_foreach_impl libxml2_py_emake \
|
||||
DESTDIR="${D}" \
|
||||
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
|
||||
exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
|
||||
install
|
||||
python_foreach_impl python_optimize
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
# on windows, xmllint is installed by interix libxml2 in parent prefix.
|
||||
# this is the version to use. the native winnt version does not support
|
||||
# symlinks, which makes repoman fail if the portage tree is linked in
|
||||
# from another location (which is my default). -- mduft
|
||||
if [[ ${CHOST} == *-winnt* ]]; then
|
||||
rm -rf "${ED}"/usr/bin/xmllint
|
||||
rm -rf "${ED}"/usr/bin/xmlcatalog
|
||||
fi
|
||||
|
||||
rm -rf "${ED}"/usr/share/doc/${P}
|
||||
einstalldocs
|
||||
|
||||
if ! use examples; then
|
||||
rm -rf "${ED}"/usr/share/doc/${PF}/examples
|
||||
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples
|
||||
fi
|
||||
|
||||
prune_libtool_files --modules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
|
||||
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
|
||||
if [[ "${ROOT}" != "/" ]]; then
|
||||
elog "Skipping XML catalog creation for stage building (bug #208887)."
|
||||
else
|
||||
# need an XML catalog, so no-one writes to a non-existent one
|
||||
CATALOG="${EROOT}etc/xml/catalog"
|
||||
|
||||
# we dont want to clobber an existing catalog though,
|
||||
# only ensure that one is there
|
||||
# <obz@gentoo.org>
|
||||
if [[ ! -e ${CATALOG} ]]; then
|
||||
[[ -d "${EROOT}etc/xml" ]] || mkdir -p "${EROOT}etc/xml"
|
||||
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
|
||||
einfo "Created XML catalog in ${CATALOG}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
libxml2_py_emake() {
|
||||
pushd "${BUILD_DIR}/python" > /dev/null || die
|
||||
emake "$@"
|
||||
popd > /dev/null
|
||||
}
|
||||
@ -1,239 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
|
||||
PYTHON_REQ_USE="xml"
|
||||
|
||||
inherit libtool flag-o-matic ltprune python-r1 autotools prefix multilib-minimal
|
||||
|
||||
DESCRIPTION="Version 2 of the library to manipulate XML files"
|
||||
HOMEPAGE="http://www.xmlsoft.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="2"
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
IUSE="debug examples icu ipv6 lzma python readline static-libs test"
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
|
||||
XSTS_NAME_1="xmlschema2002-01-16"
|
||||
XSTS_NAME_2="xmlschema2004-01-14"
|
||||
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
|
||||
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
|
||||
XMLCONF_TARBALL="xmlts20080827.tar.gz"
|
||||
|
||||
SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz
|
||||
test? (
|
||||
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
|
||||
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
|
||||
http://www.w3.org/XML/Test/${XMLCONF_TARBALL} )"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
|
||||
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
|
||||
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
readline? ( sys-libs/readline:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-util/gtk-doc-am
|
||||
virtual/pkgconfig
|
||||
hppa? ( >=sys-devel/binutils-2.15.92.0.2 )
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${PN}-${PV%_rc*}"
|
||||
|
||||
MULTILIB_CHOST_TOOLS=(
|
||||
/usr/bin/xml2-config
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
# ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR,
|
||||
# as they are needed as tarballs in ${S}/xstc instead and not unpacked
|
||||
unpack ${P/_rc/-rc}.tar.gz
|
||||
cd "${S}" || die
|
||||
|
||||
if use test; then
|
||||
cp "${DISTDIR}/${XSTS_TARBALL_1}" \
|
||||
"${DISTDIR}/${XSTS_TARBALL_2}" \
|
||||
"${S}"/xstc/ \
|
||||
|| die "Failed to install test tarballs"
|
||||
unpack ${XMLCONF_TARBALL}
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
DOCS=( AUTHORS ChangeLog NEWS README* TODO* )
|
||||
|
||||
# Patches needed for prefix support
|
||||
eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
|
||||
|
||||
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
|
||||
|
||||
# Fix build for Windows platform
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
|
||||
eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
|
||||
|
||||
# Disable programs that we don't actually install.
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760457
|
||||
eapply "${FILESDIR}"/${PN}-2.9.2-disable-tests.patch
|
||||
|
||||
# Fix python detection, bug #567066
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
|
||||
eapply "${FILESDIR}"/${PN}-2.9.2-python-ABIFLAG.patch
|
||||
|
||||
# Apply round of security patches wrt bugs
|
||||
# 589816, 597112, 597114, 597116. This will be included
|
||||
# in the next upstream release
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-CVE-2016-4658.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-CVE-2016-5131.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-nullptrderef.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-nullptrderef2.patch
|
||||
|
||||
# Apply round of security patches wrt bugs:
|
||||
# 599192, 586886, 618604, 622914, 605208, 623206
|
||||
# This will be included in the next upstream release
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-5969.patch
|
||||
eapply "${FILESDIR}"/${P}-osd-validation.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-9049-9050.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-9047-9048.patch
|
||||
eapply "${FILESDIR}"/${P}-heap-buffer-overflow.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2016-9318.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-7375.patch
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-0663.patch
|
||||
|
||||
# More patche stolen from Debian patch stack
|
||||
eapply "${FILESDIR}"/${P}-CVE-2017-7376.patch
|
||||
eapply "${FILESDIR}"/${P}-fix-root-node-cmp.patch
|
||||
|
||||
# After all the patching this test still fails:
|
||||
rm "${S}"/test/errors10/781205.xml || die
|
||||
|
||||
# Avoid final linking arguments for python modules
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
|
||||
fi
|
||||
|
||||
# Please do not remove, as else we get references to PORTAGE_TMPDIR
|
||||
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
|
||||
# We now need to run eautoreconf at the end to prevent maintainer mode.
|
||||
# elibtoolize
|
||||
# epunt_cxx # if we don't eautoreconf
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# filter seemingly problematic CFLAGS (#26320)
|
||||
filter-flags -fprefetch-loop-arrays -funroll-loops
|
||||
|
||||
# USE zlib support breaks gnome2
|
||||
# (libgnomeprint for instance fails to compile with
|
||||
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
|
||||
|
||||
# The meaning of the 'debug' USE flag does not apply to the --with-debug
|
||||
# switch (enabling the libxml2 debug module). See bug #100898.
|
||||
|
||||
# --with-mem-debug causes unusual segmentation faults (bug #105120).
|
||||
|
||||
libxml2_configure() {
|
||||
ECONF_SOURCE="${S}" econf \
|
||||
--with-html-subdir=${PF}/html \
|
||||
$(use_with debug run-debug) \
|
||||
$(use_with icu) \
|
||||
$(use_with lzma) \
|
||||
$(use_enable ipv6) \
|
||||
$(use_enable static-libs static) \
|
||||
$(multilib_native_use_with readline) \
|
||||
$(multilib_native_use_with readline history) \
|
||||
"$@"
|
||||
}
|
||||
|
||||
libxml2_py_configure() {
|
||||
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
|
||||
run_in_build_dir libxml2_configure "--with-python=${ROOT%/}${PYTHON}" # odd build system, also see bug #582130
|
||||
}
|
||||
|
||||
libxml2_configure --without-python # build python bindings separately
|
||||
|
||||
if multilib_is_native_abi && use python; then
|
||||
python_foreach_impl libxml2_py_configure
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
default
|
||||
if multilib_is_native_abi && use python; then
|
||||
local native_builddir=${BUILD_DIR}
|
||||
python_foreach_impl libxml2_py_emake top_builddir="${native_builddir}" all
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
multilib_is_native_abi && use python && python_foreach_impl libxml2_py_emake test
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" \
|
||||
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples install
|
||||
|
||||
if multilib_is_native_abi && use python; then
|
||||
python_foreach_impl libxml2_py_emake \
|
||||
DESTDIR="${D}" \
|
||||
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
|
||||
exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
|
||||
install
|
||||
python_foreach_impl python_optimize
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
# on windows, xmllint is installed by interix libxml2 in parent prefix.
|
||||
# this is the version to use. the native winnt version does not support
|
||||
# symlinks, which makes repoman fail if the portage tree is linked in
|
||||
# from another location (which is my default). -- mduft
|
||||
if [[ ${CHOST} == *-winnt* ]]; then
|
||||
rm -rf "${ED}"/usr/bin/xmllint
|
||||
rm -rf "${ED}"/usr/bin/xmlcatalog
|
||||
fi
|
||||
|
||||
rm -rf "${ED}"/usr/share/doc/${P}
|
||||
einstalldocs
|
||||
|
||||
if ! use examples; then
|
||||
rm -rf "${ED}"/usr/share/doc/${PF}/examples
|
||||
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples
|
||||
fi
|
||||
|
||||
prune_libtool_files --modules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
|
||||
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
|
||||
if [[ "${ROOT}" != "/" ]]; then
|
||||
elog "Skipping XML catalog creation for stage building (bug #208887)."
|
||||
else
|
||||
# need an XML catalog, so no-one writes to a non-existent one
|
||||
CATALOG="${EROOT}etc/xml/catalog"
|
||||
|
||||
# we dont want to clobber an existing catalog though,
|
||||
# only ensure that one is there
|
||||
# <obz@gentoo.org>
|
||||
if [[ ! -e ${CATALOG} ]]; then
|
||||
[[ -d "${EROOT}etc/xml" ]] || mkdir -p "${EROOT}etc/xml"
|
||||
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
|
||||
einfo "Created XML catalog in ${CATALOG}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
libxml2_py_emake() {
|
||||
pushd "${BUILD_DIR}/python" > /dev/null || die
|
||||
emake "$@"
|
||||
popd > /dev/null
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
@ -12,7 +12,7 @@ HOMEPAGE="http://www.xmlsoft.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="2"
|
||||
KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
IUSE="debug examples icu ipv6 lzma python readline static-libs test"
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
@ -12,7 +12,7 @@ HOMEPAGE="http://www.xmlsoft.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug examples icu ipv6 lzma python readline static-libs test"
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
@ -75,7 +75,7 @@ src_prepare() {
|
||||
|
||||
# Fix build for Windows platform
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
|
||||
eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
|
||||
# eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
|
||||
|
||||
# Fix python detection, bug #567066
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
|
||||
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
@ -7,12 +7,12 @@ PYTHON_REQ_USE="xml"
|
||||
|
||||
inherit libtool flag-o-matic ltprune python-r1 autotools prefix multilib-minimal
|
||||
|
||||
DESCRIPTION="Version 2 of the library to manipulate XML files"
|
||||
DESCRIPTION="XML C parser and toolkit"
|
||||
HOMEPAGE="http://www.xmlsoft.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="2"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug examples icu ipv6 lzma python readline static-libs test"
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
@ -75,24 +75,12 @@ src_prepare() {
|
||||
|
||||
# Fix build for Windows platform
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
|
||||
eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
|
||||
|
||||
# Disable programs that we don't actually install.
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760457
|
||||
eapply "${FILESDIR}"/${PN}-2.9.2-disable-tests.patch
|
||||
# eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
|
||||
|
||||
# Fix python detection, bug #567066
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
|
||||
eapply "${FILESDIR}"/${PN}-2.9.2-python-ABIFLAG.patch
|
||||
|
||||
# Apply latest round of security patches wrt bugs
|
||||
# 589816, 597112, 597114, 597116. This will be included
|
||||
# in the next upstream release
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-CVE-2016-4658.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-CVE-2016-5131.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-nullptrderef.patch
|
||||
eapply "${FILESDIR}"/${PN}-2.9.4-nullptrderef2.patch
|
||||
|
||||
# Avoid final linking arguments for python modules
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
|
||||
@ -154,7 +142,7 @@ multilib_src_compile() {
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
default
|
||||
emake check
|
||||
multilib_is_native_abi && use python && python_foreach_impl libxml2_py_emake test
|
||||
}
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst prepare test unpack
|
||||
DEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= ) dev-util/gtk-doc-am virtual/pkgconfig hppa? ( >=sys-devel/binutils-2.15.92.0.2 ) >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
|
||||
DESCRIPTION=Version 2 of the library to manipulate XML files
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.xmlsoft.org/
|
||||
IUSE=debug examples icu ipv6 lzma python readline static-libs test python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= )
|
||||
REQUIRED_USE=python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) )
|
||||
SLOT=2
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 libtool 0081a71a261724730ec4c248494f044d ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 prefix 7b6fb2fc216b101b5d97d171925a847c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=7e332363ad0884f56252a97f3ecb1dbd
|
||||
@ -1,14 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst prepare test unpack
|
||||
DEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= ) dev-util/gtk-doc-am virtual/pkgconfig hppa? ( >=sys-devel/binutils-2.15.92.0.2 ) >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
|
||||
DESCRIPTION=Version 2 of the library to manipulate XML files
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.xmlsoft.org/
|
||||
IUSE=debug examples icu ipv6 lzma python readline static-libs test python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= )
|
||||
REQUIRED_USE=python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) )
|
||||
SLOT=2
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.5.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 libtool 0081a71a261724730ec4c248494f044d ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 prefix 7b6fb2fc216b101b5d97d171925a847c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=e6b60ac57b7cb77be70a02f10a0c162f
|
||||
@ -4,11 +4,11 @@ DESCRIPTION=Version 2 of the library to manipulate XML files
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.xmlsoft.org/
|
||||
IUSE=debug examples icu ipv6 lzma python readline static-libs test python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=alpha ~amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
|
||||
KEYWORDS=alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= )
|
||||
REQUIRED_USE=python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) )
|
||||
SLOT=2
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.6.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 libtool 0081a71a261724730ec4c248494f044d ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 prefix 7b6fb2fc216b101b5d97d171925a847c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=b23a32eb7b3c7e9025a9a7c72d048e33
|
||||
_md5_=5b8a175deffe6bf2888738eebeea2d8e
|
||||
|
||||
@ -4,11 +4,11 @@ DESCRIPTION=Version 2 of the library to manipulate XML files
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.xmlsoft.org/
|
||||
IUSE=debug examples icu ipv6 lzma python readline static-libs test python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
|
||||
KEYWORDS=alpha amd64 arm arm64 ~hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= )
|
||||
REQUIRED_USE=python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) )
|
||||
SLOT=2
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.7.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 libtool 0081a71a261724730ec4c248494f044d ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 prefix 7b6fb2fc216b101b5d97d171925a847c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=2a5a1a0cd641a38ef62a2249076fb157
|
||||
_md5_=3d784bbfdc0077127e4b53bffda9463b
|
||||
@ -1,14 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install postinst prepare test unpack
|
||||
DEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= ) dev-util/gtk-doc-am virtual/pkgconfig hppa? ( >=sys-devel/binutils-2.15.92.0.2 ) >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
|
||||
DESCRIPTION=Version 2 of the library to manipulate XML files
|
||||
DESCRIPTION=XML C parser and toolkit
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.xmlsoft.org/
|
||||
IUSE=debug examples icu ipv6 lzma python readline static-libs test python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
|
||||
KEYWORDS=alpha amd64 arm arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] icu? ( >=dev-libs/icu-51.2-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[xml] ) python_targets_python3_4? ( dev-lang/python:3.4[xml] ) python_targets_python3_5? ( dev-lang/python:3.5[xml] ) python_targets_python3_6? ( dev-lang/python:3.6[xml] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] ) readline? ( sys-libs/readline:= )
|
||||
REQUIRED_USE=python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) )
|
||||
SLOT=2
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
SRC_URI=ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz test? ( http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2004-01-14/xsts-2004-01-14.tar.gz http://www.w3.org/XML/Test/xmlts20080827.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 libtool 0081a71a261724730ec4c248494f044d ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 prefix 7b6fb2fc216b101b5d97d171925a847c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=34dff334b06fc41d041d809bcc50b03a
|
||||
_md5_=3f846f94312bc3d969801508d3d24c37
|
||||
Loading…
x
Reference in New Issue
Block a user