<div dir="ltr"><div>Sorry but:</div><div><br></div><div>| NOTE: make DESTDIR=/data/poky-tmp/master/build/work/corei7-64-poky-linux/libxml2/2.9.5-r0/image/usr/lib/libxml2/ptest install-ptest</div><div>| install: cannot stat 'testSchemas': No such file or directory</div><div><div>| install: cannot stat 'testRelax': No such file or directory</div><div>| install: cannot stat 'testSAX': No such file or directory</div><div>| install: cannot stat 'testHTML': No such file or directory</div><div>| install: cannot stat 'testXPath': No such file or directory</div><div>| install: cannot stat 'testURI': No such file or directory</div><div>| install: cannot stat 'testThreads': No such file or directory</div><div>| install: cannot stat 'testC14N': No such file or directory</div><div>| install: cannot stat 'testAutomata': No such file or directory</div><div>| install: cannot stat 'testRegexp': No such file or directory</div><div>| install: cannot stat 'testReader': No such file or directory</div><div>| install: cannot stat 'testapi': No such file or directory</div><div>| install: cannot stat 'testModule': No such file or directory</div><div>| install: cannot stat 'runtest': No such file or directory</div><div>| install: cannot stat 'runsuite': No such file or directory</div><div>| install: cannot stat 'testchar': No such file or directory</div><div>| install: cannot stat 'testdict': No such file or directory</div><div>| install: cannot stat 'runxmlconf': No such file or directory</div><div>| install: cannot stat 'testrecurse': No such file or directory</div><div>| install: cannot stat 'testlimits': No such file or directory</div><div>| Makefile:1908: recipe for target 'install-ptest' failed</div></div><div><br></div><div>Ross</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 28 September 2017 at 13:06, Andrej Valek <span dir="ltr"><<a href="mailto:andrej.valek@siemens.com" target="_blank">andrej.valek@siemens.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
---<br>
.../libxml/libxml2/libxml-m4-<wbr>use-pkgconfig.patch | 2 +-<br>
.../libxml/libxml2/libxml2-<wbr>CVE-2016-4658.patch | 269 ----------<br>
.../libxml/libxml2/libxml2-<wbr>CVE-2016-5131.patch | 180 -------<br>
.../libxml/libxml2/libxml2-<wbr>CVE-2017-0663.patch | 40 --<br>
.../libxml/libxml2/libxml2-<wbr>CVE-2017-5969.patch | 62 ---<br>
.../libxml/libxml2/libxml2-<wbr>CVE-2017-8872.patch | 37 --<br>
.../libxml2-CVE-2017-9047_CVE-<wbr>2017-9048.patch | 103 ----<br>
.../libxml2-CVE-2017-9049_CVE-<wbr>2017-9050.patch | 291 ----------<br>
.../libxml2/libxml2-fix_NULL_<wbr>pointer_derefs.patch | 45 --<br>
...ibxml2-fix_and_simplify_<wbr>xmlParseStartTag2.patch | 590 ---------------------<br>
.../libxml2/libxml2-fix_node_<wbr>comparison.patch | 67 ---<br>
</span> meta/recipes-core/libxml/<wbr>libxml2/runtest.patch | 34 +-<br>
<span class=""> .../libxml/{<a href="http://libxml2_2.9.4.bb" rel="noreferrer" target="_blank">libxml2_2.9.4.bb</a> => <a href="http://libxml2_2.9.5.bb" rel="noreferrer" target="_blank">libxml2_2.9.5.bb</a>} | 14 +-<br>
</span> 13 files changed, 11 insertions(+), 1723 deletions(-)<br>
<div><div class="h5"> delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-4658.<wbr>patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-5131.<wbr>patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-0663.<wbr>patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-5969.<wbr>patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-8872.<wbr>patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9047_<wbr>CVE-2017-9048.patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9049_<wbr>CVE-2017-9050.patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_NULL_<wbr>pointer_derefs.patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_and_<wbr>simplify_xmlParseStartTag2.<wbr>patch<br>
delete mode 100644 meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_node_<wbr>comparison.patch<br>
rename meta/recipes-core/libxml/{<a href="http://libxml2_2.9.4.bb" rel="noreferrer" target="_blank">libx<wbr>ml2_2.9.4.bb</a> => <a href="http://libxml2_2.9.5.bb" rel="noreferrer" target="_blank">libxml2_2.9.5.bb</a>} (85%)<br>
<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml-m4-use-<wbr>pkgconfig.patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml-m4-use-<wbr>pkgconfig.patch<br>
index 3277165..d9ed151 100644<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml-m4-use-<wbr>pkgconfig.patch<br>
+++ b/meta/recipes-core/libxml/<wbr>libxml2/libxml-m4-use-<wbr>pkgconfig.patch<br>
@@ -183,7 +183,7 @@ index 68cd824..5fa0a9b 100644<br>
- echo "*** If you have an old version installed, it is best to remove it, although"<br>
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],<br>
- [ echo "*** The test program failed to compile or link. See the file config.log for the"<br>
-- echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"<br>
+- echo "*** exact error that occurred. This usually means LIBXML was incorrectly installed"<br>
- echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"<br>
- echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])<br>
- CPPFLAGS="$ac_save_CPPFLAGS"<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-4658.<wbr>patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-4658.<wbr>patch<br>
deleted file mode 100644<br>
index bb55eed..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-4658.<wbr>patch<br>
+++ /dev/null<br>
@@ -1,269 +0,0 @@<br>
-libxml2-2.9.4: Fix CVE-2016-4658<br>
-<br>
-[No upstream tracking] -- <a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-4658" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/<wbr>show_bug.cgi?id=CVE-2016-4658</a><br>
-<br>
-xpointer: Disallow namespace nodes in XPointer points and ranges<br>
-<br>
-Namespace nodes must be copied to avoid use-after-free errors.<br>
-But they don't necessarily have a physical representation in a<br>
-document, so simply disallow them in XPointer ranges.<br>
-<br>
-Upstream-Status: Backport<br>
- - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=c1d1f7121194036608bf555f08d3062a36fd344b" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>c1d1f7121194036608bf555f08d306<wbr>2a36fd344b</a>]<br>
- - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=3f8a91036d338e51c059d54397a42d645f019c65" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>3f8a91036d338e51c059d54397a42d<wbr>645f019c65</a>]<br>
-CVE: CVE-2016-4658<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-Signed-off-by: Pascal Bach <<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>><br>
-<br>
-diff --git a/xpointer.c b/xpointer.c<br>
-index 676c510..911680d 100644<br>
---- a/xpointer.c<br>
-+++ b/xpointer.c<br>
-@@ -320,6 +320,45 @@ xmlXPtrRangesEqual(<wbr>xmlXPathObjectPtr range1, xmlXPathObjectPtr range2) {<br>
- }<br>
-<br>
- /**<br>
-+ * xmlXPtrNewRangeInternal:<br>
-+ * @start: the starting node<br>
-+ * @startindex: the start index<br>
-+ * @end: the ending point<br>
-+ * @endindex: the ending index<br>
-+ *<br>
-+ * Internal function to create a new xmlXPathObjectPtr of type range<br>
-+ *<br>
-+ * Returns the newly created object.<br>
-+ */<br>
-+static xmlXPathObjectPtr<br>
-+xmlXPtrNewRangeInternal(<wbr>xmlNodePtr start, int startindex,<br>
-+ xmlNodePtr end, int endindex) {<br>
-+ xmlXPathObjectPtr ret;<br>
-+<br>
-+ /*<br>
-+ * Namespace nodes must be copied (see xmlXPathNodeSetDupNs).<br>
-+ * Disallow them for now.<br>
-+ */<br>
-+ if ((start != NULL) && (start->type == XML_NAMESPACE_DECL))<br>
-+ return(NULL);<br>
-+ if ((end != NULL) && (end->type == XML_NAMESPACE_DECL))<br>
-+ return(NULL);<br>
-+<br>
-+ ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-+ if (ret == NULL) {<br>
-+ xmlXPtrErrMemory("allocating range");<br>
-+ return(NULL);<br>
-+ }<br>
-+ memset(ret, 0, sizeof(xmlXPathObject));<br>
-+ ret->type = XPATH_RANGE;<br>
-+ ret->user = start;<br>
-+ ret->index = startindex;<br>
-+ ret->user2 = end;<br>
-+ ret->index2 = endindex;<br>
-+ return(ret);<br>
-+}<br>
-+<br>
-+/**<br>
- * xmlXPtrNewRange:<br>
- * @start: the starting node<br>
- * @startindex: the start index<br>
-@@ -344,17 +383,7 @@ xmlXPtrNewRange(xmlNodePtr start, int startindex,<br>
- if (endindex < 0)<br>
- return(NULL);<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start;<br>
-- ret->index = startindex;<br>
-- ret->user2 = end;<br>
-- ret->index2 = endindex;<br>
-+ ret = xmlXPtrNewRangeInternal(start, startindex, end, endindex);<br>
- xmlXPtrRangeCheckOrder(ret);<br>
- return(ret);<br>
- }<br>
-@@ -381,17 +410,8 @@ xmlXPtrNewRangePoints(<wbr>xmlXPathObjectPtr start, xmlXPathObjectPtr end) {<br>
- if (end->type != XPATH_POINT)<br>
- return(NULL);<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start->user;<br>
-- ret->index = start->index;<br>
-- ret->user2 = end->user;<br>
-- ret->index2 = end->index;<br>
-+ ret = xmlXPtrNewRangeInternal(start-<wbr>>user, start->index, end->user,<br>
-+ end->index);<br>
- xmlXPtrRangeCheckOrder(ret);<br>
- return(ret);<br>
- }<br>
-@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(<wbr>xmlXPathObjectPtr start, xmlNodePtr end) {<br>
- if (start->type != XPATH_POINT)<br>
- return(NULL);<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start->user;<br>
-- ret->index = start->index;<br>
-- ret->user2 = end;<br>
-- ret->index2 = -1;<br>
-+ ret = xmlXPtrNewRangeInternal(start-<wbr>>user, start->index, end, -1);<br>
- xmlXPtrRangeCheckOrder(ret);<br>
- return(ret);<br>
- }<br>
-@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
- if (end->type != XPATH_POINT)<br>
- return(NULL);<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start;<br>
-- ret->index = -1;<br>
-- ret->user2 = end->user;<br>
-- ret->index2 = end->index;<br>
-+ ret = xmlXPtrNewRangeInternal(start, -1, end->user, end->index);<br>
- xmlXPtrRangeCheckOrder(ret);<br>
- return(ret);<br>
- }<br>
-@@ -486,17 +486,7 @@ xmlXPtrNewRangeNodes(<wbr>xmlNodePtr start, xmlNodePtr end) {<br>
- if (end == NULL)<br>
- return(NULL);<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start;<br>
-- ret->index = -1;<br>
-- ret->user2 = end;<br>
-- ret->index2 = -1;<br>
-+ ret = xmlXPtrNewRangeInternal(start, -1, end, -1);<br>
- xmlXPtrRangeCheckOrder(ret);<br>
- return(ret);<br>
- }<br>
-@@ -516,17 +506,7 @@ xmlXPtrNewCollapsedRange(<wbr>xmlNodePtr start) {<br>
- if (start == NULL)<br>
- return(NULL);<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start;<br>
-- ret->index = -1;<br>
-- ret->user2 = NULL;<br>
-- ret->index2 = -1;<br>
-+ ret = xmlXPtrNewRangeInternal(start, -1, NULL, -1);<br>
- return(ret);<br>
- }<br>
-<br>
-@@ -541,6 +521,8 @@ xmlXPtrNewCollapsedRange(<wbr>xmlNodePtr start) {<br>
- */<br>
- xmlXPathObjectPtr<br>
- xmlXPtrNewRangeNodeObject(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
-+ xmlNodePtr endNode;<br>
-+ int endIndex;<br>
- xmlXPathObjectPtr ret;<br>
-<br>
- if (start == NULL)<br>
-@@ -549,7 +531,12 @@ xmlXPtrNewRangeNodeObject(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
- return(NULL);<br>
- switch (end->type) {<br>
- case XPATH_POINT:<br>
-+ endNode = end->user;<br>
-+ endIndex = end->index;<br>
-+ break;<br>
- case XPATH_RANGE:<br>
-+ endNode = end->user2;<br>
-+ endIndex = end->index2;<br>
- break;<br>
- case XPATH_NODESET:<br>
- /*<br>
-@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
- */<br>
- if (end->nodesetval->nodeNr <= 0)<br>
- return(NULL);<br>
-+ endNode = end->nodesetval->nodeTab[end-><wbr>nodesetval->nodeNr - 1];<br>
-+ endIndex = -1;<br>
- break;<br>
- default:<br>
- /* TODO */<br>
- return(NULL);<br>
- }<br>
-<br>
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-- if (ret == NULL) {<br>
-- xmlXPtrErrMemory("allocating range");<br>
-- return(NULL);<br>
-- }<br>
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
-- ret->type = XPATH_RANGE;<br>
-- ret->user = start;<br>
-- ret->index = -1;<br>
-- switch (end->type) {<br>
-- case XPATH_POINT:<br>
-- ret->user2 = end->user;<br>
-- ret->index2 = end->index;<br>
-- break;<br>
-- case XPATH_RANGE:<br>
-- ret->user2 = end->user2;<br>
-- ret->index2 = end->index2;<br>
-- break;<br>
-- case XPATH_NODESET: {<br>
-- ret->user2 = end->nodesetval->nodeTab[end-><wbr>nodesetval->nodeNr - 1];<br>
-- ret->index2 = -1;<br>
-- break;<br>
-- }<br>
-- default:<br>
-- STRANGE<br>
-- return(NULL);<br>
-- }<br>
-+ ret = xmlXPtrNewRangeInternal(start, -1, endNode, endIndex);<br>
- xmlXPtrRangeCheckOrder(ret);<br>
- return(ret);<br>
- }<br>
-@@ -1835,8 +1798,8 @@ xmlXPtrStartPointFunction(<wbr>xmlXPathParserContextPtr ctxt, int nargs) {<br>
- case XPATH_RANGE: {<br>
- xmlNodePtr node = tmp->user;<br>
- if (node != NULL) {<br>
-- if (node->type == XML_ATTRIBUTE_NODE) {<br>
-- /* TODO: Namespace Nodes ??? */<br>
-+ if ((node->type == XML_ATTRIBUTE_NODE) ||<br>
-+ (node->type == XML_NAMESPACE_DECL)) {<br>
- xmlXPathFreeObject(obj);<br>
- xmlXPtrFreeLocationSet(newset)<wbr>;<br>
- XP_ERROR(XPTR_SYNTAX_ERROR);<br>
-@@ -1931,8 +1894,8 @@ xmlXPtrEndPointFunction(<wbr>xmlXPathParserContextPtr ctxt, int nargs) {<br>
- case XPATH_RANGE: {<br>
- xmlNodePtr node = tmp->user2;<br>
- if (node != NULL) {<br>
-- if (node->type == XML_ATTRIBUTE_NODE) {<br>
-- /* TODO: Namespace Nodes ??? */<br>
-+ if ((node->type == XML_ATTRIBUTE_NODE) ||<br>
-+ (node->type == XML_NAMESPACE_DECL)) {<br>
- xmlXPathFreeObject(obj);<br>
- xmlXPtrFreeLocationSet(newset)<wbr>;<br>
- XP_ERROR(XPTR_SYNTAX_ERROR);<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-5131.<wbr>patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-5131.<wbr>patch<br>
deleted file mode 100644<br>
index 9d47d02..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2016-5131.<wbr>patch<br>
+++ /dev/null<br>
@@ -1,180 +0,0 @@<br>
-From 9ab01a277d71f54d3143c2cf333c5c<wbr>2e9aaedd9e Mon Sep 17 00:00:00 2001<br>
-From: Nick Wellnhofer <<a href="mailto:wellnhofer@aevum.de">wellnhofer@aevum.de</a>><br>
-Date: Tue, 28 Jun 2016 14:22:23 +0200<br>
-Subject: [PATCH] Fix XPointer paths beginning with range-to<br>
-<br>
-The old code would invoke the broken xmlXPtrRangeToFunction. range-to<br>
-isn't really a function but a special kind of location step. Remove<br>
-this function and always handle range-to in the XPath code.<br>
-<br>
-The old xmlXPtrRangeToFunction could also be abused to trigger a<br>
-use-after-free error with the potential for remote code execution.<br>
-<br>
-Found with afl-fuzz.<br>
-<br>
-Fixes CVE-2016-5131.<br>
-<br>
-CVE: CVE-2016-5131<br>
-Upstream-Status: Backport<br>
-<a href="https://git.gnome.org/browse/libxml2/commit/?id=9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>9ab01a277d71f54d3143c2cf333c5c<wbr>2e9aaedd9e</a><br>
-<br>
-Signed-off-by: Yi Zhao <<a href="mailto:yi.zhao@windirver.com">yi.zhao@windirver.com</a>><br>
----<br>
- result/XPath/xptr/vidbase | 13 ++++++++<br>
- test/XPath/xptr/vidbase | 1 +<br>
- xpath.c | 7 ++++-<br>
- xpointer.c | 76 ++++--------------------------<wbr>-----------------<br>
- 4 files changed, 26 insertions(+), 71 deletions(-)<br>
-<br>
-diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase<br>
-index 8b9e92d..f19193e 100644<br>
---- a/result/XPath/xptr/vidbase<br>
-+++ b/result/XPath/xptr/vidbase<br>
-@@ -17,3 +17,16 @@ Object is a Location Set:<br>
- To node<br>
- ELEMENT p<br>
-<br>
-+<br>
-+========================<br>
-+Expression: xpointer(range-to(id('<wbr>chapter2')))<br>
-+Object is a Location Set:<br>
-+1 : Object is a range :<br>
-+ From node<br>
-+ /<br>
-+ To node<br>
-+ ELEMENT chapter<br>
-+ ATTRIBUTE id<br>
-+ TEXT<br>
-+ content=chapter2<br>
-+<br>
-diff --git a/test/XPath/xptr/vidbase b/test/XPath/xptr/vidbase<br>
-index b146383..884b106 100644<br>
---- a/test/XPath/xptr/vidbase<br>
-+++ b/test/XPath/xptr/vidbase<br>
-@@ -1,2 +1,3 @@<br>
- xpointer(id('chapter1')/p)<br>
- xpointer(id('chapter1')/p[1]/<wbr>range-to(following-sibling::p[<wbr>2]))<br>
-+xpointer(range-to(id('<wbr>chapter2')))<br>
-diff --git a/xpath.c b/xpath.c<br>
-index d992841..5a01b1b 100644<br>
---- a/xpath.c<br>
-+++ b/xpath.c<br>
-@@ -10691,13 +10691,18 @@ xmlXPathCompPathExpr(<wbr>xmlXPathParserContextPtr ctxt) {<br>
- lc = 1;<br>
- break;<br>
- } else if ((NXT(len) == '(')) {<br>
-- /* Note Type or Function */<br>
-+ /* Node Type or Function */<br>
- if (xmlXPathIsNodeType(name)) {<br>
- #ifdef DEBUG_STEP<br>
- xmlGenericError(<wbr>xmlGenericErrorContext,<br>
- "PathExpr: Type search\n");<br>
- #endif<br>
- lc = 1;<br>
-+#ifdef LIBXML_XPTR_ENABLED<br>
-+ } else if (ctxt->xptr &&<br>
-+ xmlStrEqual(name, BAD_CAST "range-to")) {<br>
-+ lc = 1;<br>
-+#endif<br>
- } else {<br>
- #ifdef DEBUG_STEP<br>
- xmlGenericError(<wbr>xmlGenericErrorContext,<br>
-diff --git a/xpointer.c b/xpointer.c<br>
-index 676c510..d74174a 100644<br>
---- a/xpointer.c<br>
-+++ b/xpointer.c<br>
-@@ -1332,8 +1332,6 @@ xmlXPtrNewContext(xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin) {<br>
- ret->here = here;<br>
- ret->origin = origin;<br>
-<br>
-- xmlXPathRegisterFunc(ret, (xmlChar *)"range-to",<br>
-- xmlXPtrRangeToFunction);<br>
- xmlXPathRegisterFunc(ret, (xmlChar *)"range",<br>
- xmlXPtrRangeFunction);<br>
- xmlXPathRegisterFunc(ret, (xmlChar *)"range-inside",<br>
-@@ -2243,76 +2241,14 @@ xmlXPtrRangeInsideFunction(<wbr>xmlXPathParserContextPtr ctxt, int nargs) {<br>
- * @nargs: the number of args<br>
- *<br>
- * Implement the range-to() XPointer function<br>
-+ *<br>
-+ * Obsolete. range-to is not a real function but a special type of location<br>
-+ * step which is handled in xpath.c.<br>
- */<br>
- void<br>
--xmlXPtrRangeToFunction(<wbr>xmlXPathParserContextPtr ctxt, int nargs) {<br>
-- xmlXPathObjectPtr range;<br>
-- const xmlChar *cur;<br>
-- xmlXPathObjectPtr res, obj;<br>
-- xmlXPathObjectPtr tmp;<br>
-- xmlLocationSetPtr newset = NULL;<br>
-- xmlNodeSetPtr oldset;<br>
-- int i;<br>
--<br>
-- if (ctxt == NULL) return;<br>
-- CHECK_ARITY(1);<br>
-- /*<br>
-- * Save the expression pointer since we will have to evaluate<br>
-- * it multiple times. Initialize the new set.<br>
-- */<br>
-- CHECK_TYPE(XPATH_NODESET);<br>
-- obj = valuePop(ctxt);<br>
-- oldset = obj->nodesetval;<br>
-- ctxt->context->node = NULL;<br>
--<br>
-- cur = ctxt->cur;<br>
-- newset = xmlXPtrLocationSetCreate(NULL)<wbr>;<br>
--<br>
-- for (i = 0; i < oldset->nodeNr; i++) {<br>
-- ctxt->cur = cur;<br>
--<br>
-- /*<br>
-- * Run the evaluation with a node list made of a single item<br>
-- * in the nodeset.<br>
-- */<br>
-- ctxt->context->node = oldset->nodeTab[i];<br>
-- tmp = xmlXPathNewNodeSet(ctxt-><wbr>context->node);<br>
-- valuePush(ctxt, tmp);<br>
--<br>
-- xmlXPathEvalExpr(ctxt);<br>
-- CHECK_ERROR;<br>
--<br>
-- /*<br>
-- * The result of the evaluation need to be tested to<br>
-- * decided whether the filter succeeded or not<br>
-- */<br>
-- res = valuePop(ctxt);<br>
-- range = xmlXPtrNewRangeNodeObject(<wbr>oldset->nodeTab[i], res);<br>
-- if (range != NULL) {<br>
-- xmlXPtrLocationSetAdd(newset, range);<br>
-- }<br>
--<br>
-- /*<br>
-- * Cleanup<br>
-- */<br>
-- if (res != NULL)<br>
-- xmlXPathFreeObject(res);<br>
-- if (ctxt->value == tmp) {<br>
-- res = valuePop(ctxt);<br>
-- xmlXPathFreeObject(res);<br>
-- }<br>
--<br>
-- ctxt->context->node = NULL;<br>
-- }<br>
--<br>
-- /*<br>
-- * The result is used as the new evaluation set.<br>
-- */<br>
-- xmlXPathFreeObject(obj);<br>
-- ctxt->context->node = NULL;<br>
-- ctxt->context->contextSize = -1;<br>
-- ctxt->context-><wbr>proximityPosition = -1;<br>
-- valuePush(ctxt, xmlXPtrWrapLocationSet(newset)<wbr>);<br>
-+xmlXPtrRangeToFunction(<wbr>xmlXPathParserContextPtr ctxt,<br>
-+ int nargs ATTRIBUTE_UNUSED) {<br>
-+ XP_ERROR(XPATH_EXPR_ERROR);<br>
- }<br>
-<br>
- /**<br>
---<br>
-2.7.4<br>
-<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-0663.<wbr>patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-0663.<wbr>patch<br>
deleted file mode 100644<br>
index 0108265..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-0663.<wbr>patch<br>
+++ /dev/null<br>
@@ -1,40 +0,0 @@<br>
-libxml2: Fix CVE-2017-0663<br>
-<br>
-[No upstream tracking] -- <a href="https://bugzilla.gnome.org/show_bug.cgi?id=780228" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=780228</a><br>
-<br>
-valid: Fix type confusion in xmlValidateOneNamespace<br>
-<br>
-Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types<br>
-on namespace declarations make no practical sense anyway.<br>
-<br>
-Fixes bug 780228<br>
-<br>
-Upstream-Status: Backport [<a href="https://git.gnome.org/browse/libxml2/commit/?id=92b9e8c8b3787068565a1820ba575d042f9eec66" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>92b9e8c8b3787068565a1820ba575d<wbr>042f9eec66</a>]<br>
-CVE: CVE-2017-0663<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-<br>
-diff --git a/valid.c b/valid.c<br>
-index 19f84b8..e03d35e 100644<br>
---- a/valid.c<br>
-+++ b/valid.c<br>
-@@ -4621,6 +4621,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {<br>
- }<br>
- }<br>
-<br>
-+ /*<br>
-+ * Casting ns to xmlAttrPtr is wrong. We'd need separate functions<br>
-+ * xmlAddID and xmlAddRef for namespace declarations, but it makes<br>
-+ * no practical sense to use ID types anyway.<br>
-+ */<br>
-+#if 0<br>
- /* Validity Constraint: ID uniqueness */<br>
- if (attrDecl->atype == XML_ATTRIBUTE_ID) {<br>
- if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)<br>
-@@ -4632,6 +4638,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {<br>
- if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)<br>
- ret = 0;<br>
- }<br>
-+#endif<br>
-<br>
- /* Validity Constraint: Notation Attributes */<br>
- if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-5969.<wbr>patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-5969.<wbr>patch<br>
deleted file mode 100644<br>
index 571b05c..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-5969.<wbr>patch<br>
+++ /dev/null<br>
@@ -1,62 +0,0 @@<br>
-libxml2-2.9.4: Fix CVE-2017-5969<br>
-<br>
-[No upstream tracking] -- <a href="https://bugzilla.gnome.org/show_bug.cgi?id=758422" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=758422</a><br>
-<br>
-valid: Fix NULL pointer deref in xmlDumpElementContent<br>
-<br>
-Can only be triggered in recovery mode.<br>
-<br>
-Fixes bug 758422<br>
-<br>
-Upstream-Status: Backport - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=94691dc884d1a8ada39f073408b4bb92fe7fe882" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>94691dc884d1a8ada39f073408b4bb<wbr>92fe7fe882</a>]<br>
-CVE: CVE-2017-5969<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-<br>
-diff --git a/valid.c b/valid.c<br>
-index 19f84b8..0a8e58a 100644<br>
---- a/valid.c<br>
-+++ b/valid.c<br>
-@@ -1172,29 +1172,33 @@ xmlDumpElementContent(<wbr>xmlBufferPtr buf, xmlElementContentPtr content, int glob)<br>
- xmlBufferWriteCHAR(buf, content->name);<br>
- break;<br>
- case XML_ELEMENT_CONTENT_SEQ:<br>
-- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||<br>
-- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))<br>
-+ if ((content->c1 != NULL) &&<br>
-+ ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||<br>
-+ (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))<br>
- xmlDumpElementContent(buf, content->c1, 1);<br>
- else<br>
- xmlDumpElementContent(buf, content->c1, 0);<br>
- xmlBufferWriteChar(buf, " , ");<br>
-- if ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||<br>
-- ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&<br>
-- (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))<br>
-+ if ((content->c2 != NULL) &&<br>
-+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||<br>
-+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&<br>
-+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))<br>
- xmlDumpElementContent(buf, content->c2, 1);<br>
- else<br>
- xmlDumpElementContent(buf, content->c2, 0);<br>
- break;<br>
- case XML_ELEMENT_CONTENT_OR:<br>
-- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||<br>
-- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))<br>
-+ if ((content->c1 != NULL) &&<br>
-+ ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||<br>
-+ (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))<br>
- xmlDumpElementContent(buf, content->c1, 1);<br>
- else<br>
- xmlDumpElementContent(buf, content->c1, 0);<br>
- xmlBufferWriteChar(buf, " | ");<br>
-- if ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||<br>
-- ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&<br>
-- (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))<br>
-+ if ((content->c2 != NULL) &&<br>
-+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||<br>
-+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&<br>
-+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))<br>
- xmlDumpElementContent(buf, content->c2, 1);<br>
- else<br>
- xmlDumpElementContent(buf, content->c2, 0);<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-8872.<wbr>patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-8872.<wbr>patch<br>
deleted file mode 100644<br>
index 26779aa..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-8872.<wbr>patch<br>
+++ /dev/null<br>
@@ -1,37 +0,0 @@<br>
-From d2f873a541c72b0f67e15562819bf9<wbr>8b884b30b7 Mon Sep 17 00:00:00 2001<br>
-From: Hongxu Jia <<a href="mailto:hongxu.jia@windriver.com">hongxu.jia@windriver.com</a>><br>
-Date: Wed, 23 Aug 2017 16:04:49 +0800<br>
-Subject: [PATCH] fix CVE-2017-8872<br>
-<br>
-this makes xmlHaltParser "empty" the buffer, as it resets cur and ava<br>
-il too here.<br>
-<br>
-this seems to cure this specific issue, and also passes the testsuite<br>
-<br>
-Signed-off-by: Marcus Meissner <<a href="mailto:meissner@suse.de">meissner@suse.de</a>><br>
-<br>
-<a href="https://bugzilla.gnome.org/show_bug.cgi?id=775200" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=775200</a><br>
-Upstream-Status: Backport [<a href="https://bugzilla.gnome.org/attachment.cgi?id=355527&action=diff" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>attachment.cgi?id=355527&<wbr>action=diff</a>]<br>
-Signed-off-by: Hongxu Jia <<a href="mailto:hongxu.jia@windriver.com">hongxu.jia@windriver.com</a>><br>
----<br>
- parser.c | 4 ++++<br>
- 1 file changed, 4 insertions(+)<br>
-<br>
-diff --git a/parser.c b/parser.c<br>
-index 9506ead..6c07ffd 100644<br>
---- a/parser.c<br>
-+++ b/parser.c<br>
-@@ -12664,6 +12664,10 @@ xmlHaltParser(xmlParserCtxtPtr ctxt) {<br>
- }<br>
- ctxt->input->cur = BAD_CAST"";<br>
- ctxt->input->base = ctxt->input->cur;<br>
-+ if (ctxt->input->buf) {<br>
-+ xmlBufEmpty (ctxt->input->buf->buffer);<br>
-+ } else<br>
-+ ctxt->input->length = 0;<br>
- }<br>
- }<br>
-<br>
---<br>
-2.7.4<br>
-<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9047_<wbr>CVE-2017-9048.patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9047_<wbr>CVE-2017-9048.patch<br>
deleted file mode 100644<br>
index 8b03456..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9047_<wbr>CVE-2017-9048.patch<br>
+++ /dev/null<br>
@@ -1,103 +0,0 @@<br>
-libxml2-2.9.4: Fix CVE-2017-9047 and CVE-2017-9048<br>
-<br>
-[No upstream tracking] -- <a href="https://bugzilla.gnome.org/show_bug.cgi?id=781333" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=781333</a><br>
- -- <a href="https://bugzilla.gnome.org/show_bug.cgi?id=781701" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=781701</a><br>
-<br>
-valid: Fix buffer size checks in xmlSnprintfElementContent<br>
-<br>
-xmlSnprintfElementContent failed to correctly check the available<br>
-buffer space in two locations.<br>
-<br>
-Fixes bug 781333 and bug 781701<br>
-<br>
-Upstream-Status: Backport [<a href="https://git.gnome.org/browse/libxml2/commit/?id=932cc9896ab41475d4aa429c27d9afd175959d74" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>932cc9896ab41475d4aa429c27d9af<wbr>d175959d74</a>]<br>
-CVE: CVE-2017-9047 CVE-2017-9048<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-<br>
-diff --git a/result/valid/781333.xml b/result/valid/781333.xml<br>
-new file mode 100644<br>
-index 0000000..01baf11<br>
---- /dev/null<br>
-+++ b/result/valid/781333.xml<br>
-@@ -0,0 +1,5 @@<br>
-+<?xml version="1.0"?><br>
-+<!DOCTYPE a [<br>
-+<!ELEMENT a (<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppp:<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>l!<br>
lllllllll<br>
llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllll!<br>
lllllllll<br>
llllllllllllllllllllllllllllll<wbr>lll)><br>
-+]><br>
-+<a/><br>
-diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err<br>
-new file mode 100644<br>
-index 0000000..2176200<br>
---- /dev/null<br>
-+++ b/result/valid/781333.xml.err<br>
-@@ -0,0 +1,3 @@<br>
-+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got<br>
-+<a/><br>
-+ ^<br>
-diff --git a/result/valid/781333.xml.err.<wbr>rdr b/result/valid/781333.xml.err.<wbr>rdr<br>
-new file mode 100644<br>
-index 0000000..1195a04<br>
---- /dev/null<br>
-+++ b/result/valid/781333.xml.err.<wbr>rdr<br>
-@@ -0,0 +1,6 @@<br>
-+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got<br>
-+<a/><br>
-+ ^<br>
-+./test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child<br>
-+<br>
-+^<br>
-diff --git a/test/valid/781333.xml b/test/valid/781333.xml<br>
-new file mode 100644<br>
-index 0000000..bceac9c<br>
---- /dev/null<br>
-+++ b/test/valid/781333.xml<br>
-@@ -0,0 +1,4 @@<br>
-+<!DOCTYPE a [<br>
-+ <!ELEMENT a (<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppppp<wbr>pppppppppppppppppppppppppppp!<br>
ppppppppp<br>
pppppppppppppppppppppppppppppp<wbr>:<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>lllllllllllllllllllllllllll!<br>
lllllllll<br>
llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllllll<wbr>llllllllllllllllllllllllllll!<br>
lllllllll<br>
llllllllllllllllllllllllllllll<wbr>lllllll)><br>
-+]><br>
-+<a/><br>
-diff --git a/valid.c b/valid.c<br>
-index 19f84b8..aaa30f6 100644<br>
---- a/valid.c<br>
-+++ b/valid.c<br>
-@@ -1262,22 +1262,23 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int<br>
- case XML_ELEMENT_CONTENT_PCDATA:<br>
- strcat(buf, "#PCDATA");<br>
- break;<br>
-- case XML_ELEMENT_CONTENT_ELEMENT:<br>
-+ case XML_ELEMENT_CONTENT_ELEMENT: {<br>
-+ int qnameLen = xmlStrlen(content->name);<br>
-+<br>
-+ if (content->prefix != NULL)<br>
-+ qnameLen += xmlStrlen(content->prefix) + 1;<br>
-+ if (size - len < qnameLen + 10) {<br>
-+ strcat(buf, " ...");<br>
-+ return;<br>
-+ }<br>
- if (content->prefix != NULL) {<br>
-- if (size - len < xmlStrlen(content->prefix) + 10) {<br>
-- strcat(buf, " ...");<br>
-- return;<br>
-- }<br>
- strcat(buf, (char *) content->prefix);<br>
- strcat(buf, ":");<br>
- }<br>
-- if (size - len < xmlStrlen(content->name) + 10) {<br>
-- strcat(buf, " ...");<br>
-- return;<br>
-- }<br>
- if (content->name != NULL)<br>
- strcat(buf, (char *) content->name);<br>
- break;<br>
-+ }<br>
- case XML_ELEMENT_CONTENT_SEQ:<br>
- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||<br>
- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))<br>
-@@ -1319,6 +1320,7 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int<br>
- xmlSnprintfElementContent(buf, size, content->c2, 0);<br>
- break;<br>
- }<br>
-+ if (size - strlen(buf) <= 2) return;<br>
- if (englob)<br>
- strcat(buf, ")");<br>
- switch (content->ocur) {<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9049_<wbr>CVE-2017-9050.patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9049_<wbr>CVE-2017-9050.patch<br>
deleted file mode 100644<br>
index 591075d..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-CVE-2017-9049_<wbr>CVE-2017-9050.patch<br>
+++ /dev/null<br>
@@ -1,291 +0,0 @@<br>
-libxml2-2.9.4: Fix CVE-2017-9049 and CVE-2017-9050<br>
-<br>
-[No upstream tracking] -- <a href="https://bugzilla.gnome.org/show_bug.cgi?id=781205" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=781205</a><br>
- -- <a href="https://bugzilla.gnome.org/show_bug.cgi?id=781361" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=781361</a><br>
-<br>
-parser: Fix handling of parameter-entity references<br>
-<br>
-There were two bugs where parameter-entity references could lead to an<br>
-unexpected change of the input buffer in xmlParseNameComplex and<br>
-xmlDictLookup being called with an invalid pointer.<br>
-<br>
-Percent sign in DTD Names<br>
-=========================<br>
-<br>
-The NEXTL macro used to call xmlParserHandlePEReference. When parsing<br>
-"complex" names inside the DTD, this could result in entity expansion<br>
-which created a new input buffer. The fix is to simply remove the call<br>
-to xmlParserHandlePEReference from the NEXTL macro. This is safe because<br>
-no users of the macro require expansion of parameter entities.<br>
-<br>
-- xmlParseNameComplex<br>
-- xmlParseNCNameComplex<br>
-- xmlParseNmtoken<br>
-<br>
-The percent sign is not allowed in names, which are grammatical tokens.<br>
-<br>
-- xmlParseEntityValue<br>
-<br>
-Parameter-entity references in entity values are expanded but this<br>
-happens in a separate step in this function.<br>
-<br>
-- xmlParseSystemLiteral<br>
-<br>
-Parameter-entity references are ignored in the system literal.<br>
-<br>
-- xmlParseAttValueComplex<br>
-- xmlParseCharDataComplex<br>
-- xmlParseCommentComplex<br>
-- xmlParsePI<br>
-- xmlParseCDSect<br>
-<br>
-Parameter-entity references are ignored outside the DTD.<br>
-<br>
-- xmlLoadEntityContent<br>
-<br>
-This function is only called from xmlStringLenDecodeEntities and<br>
-entities are replaced in a separate step immediately after the function<br>
-call.<br>
-<br>
-This bug could also be triggered with an internal subset and double<br>
-entity expansion.<br>
-<br>
-This fixes bug 766956 initially reported by Wei Lei and independently by<br>
-Chromium's ClusterFuzz, Hanno Böck, and Marco Grassi. Thanks to everyone<br>
-involved.<br>
-<br>
-xmlParseNameComplex with XML_PARSE_OLD10<br>
-=============================<wbr>===========<br>
-<br>
-When parsing Names inside an expanded parameter entity with the<br>
-XML_PARSE_OLD10 option, xmlParseNameComplex would call xmlGROW via the<br>
-GROW macro if the input buffer was exhausted. At the end of the<br>
-parameter entity's replacement text, this function would then call<br>
-xmlPopInput which invalidated the input buffer.<br>
-<br>
-There should be no need to invoke GROW in this situation because the<br>
-buffer is grown periodically every XML_PARSER_CHUNK_SIZE characters and,<br>
-at least for UTF-8, in xmlCurrentChar. This also matches the code path<br>
-executed when XML_PARSE_OLD10 is not set.<br>
-<br>
-This fixes bugs 781205 (CVE-2017-9049) and 781361 (CVE-2017-9050).<br>
-Thanks to Marcel Böhme and Thuan Pham for the report.<br>
-<br>
-Additional hardening<br>
-====================<br>
-<br>
-A separate check was added in xmlParseNameComplex to validate the<br>
-buffer size.<br>
-<br>
-Fixes bug 781205 and bug 781361<br>
-<br>
-Upstream-Status: Backport [<a href="https://git.gnome.org/browse/libxml2/commit/?id=932cc9896ab41475d4aa429c27d9afd175959d74" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>932cc9896ab41475d4aa429c27d9af<wbr>d175959d74</a>]<br>
-CVE: CVE-2017-9049 CVE-2017-9050<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-<br>
-diff --git a/Makefile.am b/Makefile.am<br>
-index 9f988b0..dab15a4 100644<br>
---- a/Makefile.am<br>
-+++ b/Makefile.am<br>
-@@ -422,6 +422,24 @@ Errtests : xmllint$(EXEEXT)<br>
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \<br>
- rm result.$$name error.$$name ; \<br>
- fi ; fi ; done)<br>
-+ @echo "## Error cases regression tests (old 1.0)"<br>
-+ -@(for i in $(srcdir)/test/errors10/*.xml ; do \<br>
-+ name=`basename $$i`; \<br>
-+ if [ ! -d $$i ] ; then \<br>
-+ if [ ! -f $(srcdir)/result/errors10/$$<wbr>name ] ; then \<br>
-+ echo New test file $$name ; \<br>
-+ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \<br>
-+ 2> $(srcdir)/result/errors10/$$<wbr>name.err \<br>
-+ > $(srcdir)/result/errors10/$$<wbr>name ; \<br>
-+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \<br>
-+ else \<br>
-+ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \<br>
-+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \<br>
-+ diff $(srcdir)/result/errors10/$$<wbr>name result.$$name ; \<br>
-+ diff $(srcdir)/result/errors10/$$<wbr>name.err error.$$name` ; \<br>
-+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \<br>
-+ rm result.$$name error.$$name ; \<br>
-+ fi ; fi ; done)<br>
- @echo "## Error cases stream regression tests"<br>
- -@(for i in $(srcdir)/test/errors/*.xml ; do \<br>
- name=`basename $$i`; \<br>
-diff --git a/parser.c b/parser.c<br>
-index 609a270..8e11c12 100644<br>
---- a/parser.c<br>
-+++ b/parser.c<br>
-@@ -2115,7 +2115,6 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) {<br>
- ctxt->input->line++; ctxt->input->col = 1; \<br>
- } else ctxt->input->col++; \<br>
- ctxt->input->cur += l; \<br>
-- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(<wbr>ctxt); \<br>
- } while (0)<br>
-<br>
- #define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)<br>
-@@ -3406,13 +3405,6 @@ xmlParseNameComplex(<wbr>xmlParserCtxtPtr ctxt) {<br>
- len += l;<br>
- NEXTL(l);<br>
- c = CUR_CHAR(l);<br>
-- if (c == 0) {<br>
-- count = 0;<br>
-- GROW;<br>
-- if (ctxt->instate == XML_PARSER_EOF)<br>
-- return(NULL);<br>
-- c = CUR_CHAR(l);<br>
-- }<br>
- }<br>
- }<br>
- if ((len > XML_MAX_NAME_LENGTH) &&<br>
-@@ -3420,6 +3412,16 @@ xmlParseNameComplex(<wbr>xmlParserCtxtPtr ctxt) {<br>
- xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name");<br>
- return(NULL);<br>
- }<br>
-+ if (ctxt->input->cur - ctxt->input->base < len) {<br>
-+ /*<br>
-+ * There were a couple of bugs where PERefs lead to to a change<br>
-+ * of the buffer. Check the buffer size to avoid passing an invalid<br>
-+ * pointer to xmlDictLookup.<br>
-+ */<br>
-+ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,<br>
-+ "unexpected change of input buffer");<br>
-+ return (NULL);<br>
-+ }<br>
- if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))<br>
- return(xmlDictLookup(ctxt-><wbr>dict, ctxt->input->cur - (len + 1), len));<br>
- return(xmlDictLookup(ctxt-><wbr>dict, ctxt->input->cur - len, len));<br>
-diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml<br>
-new file mode 100644<br>
-index 0000000..e69de29<br>
-diff --git a/result/errors10/781205.xml.<wbr>err b/result/errors10/781205.xml.<wbr>err<br>
-new file mode 100644<br>
-index 0000000..da15c3f<br>
---- /dev/null<br>
-+++ b/result/errors10/781205.xml.<wbr>err<br>
-@@ -0,0 +1,21 @@<br>
-+Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration<br>
-+<br>
-+ %a;<br>
-+ ^<br>
-+Entity: line 1:<br>
-+<:0000<br>
-+^<br>
-+Entity: line 1: parser error : DOCTYPE improperly terminated<br>
-+ %a;<br>
-+ ^<br>
-+Entity: line 1:<br>
-+<:0000<br>
-+^<br>
-+namespace error : Failed to parse QName ':0000'<br>
-+ %a;<br>
-+ ^<br>
-+<:0000<br>
-+ ^<br>
-+./test/errors10/781205.xml:<wbr>4: parser error : Couldn't find end of Start Tag :0000 line 1<br>
-+<br>
-+^<br>
-diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml<br>
-new file mode 100644<br>
-index 0000000..e69de29<br>
-diff --git a/result/errors10/781361.xml.<wbr>err b/result/errors10/781361.xml.<wbr>err<br>
-new file mode 100644<br>
-index 0000000..655f41a<br>
---- /dev/null<br>
-+++ b/result/errors10/781361.xml.<wbr>err<br>
-@@ -0,0 +1,13 @@<br>
-+./test/errors10/781361.xml:<wbr>4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected<br>
-+<br>
-+^<br>
-+./test/errors10/781361.xml:<wbr>4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration<br>
-+<br>
-+<br>
-+^<br>
-+./test/errors10/781361.xml:<wbr>4: parser error : DOCTYPE improperly terminated<br>
-+<br>
-+^<br>
-+./test/errors10/781361.xml:<wbr>4: parser error : Start tag expected, '<' not found<br>
-+<br>
-+^<br>
-diff --git a/result/valid/766956.xml b/result/valid/766956.xml<br>
-new file mode 100644<br>
-index 0000000..e69de29<br>
-diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err<br>
-new file mode 100644<br>
-index 0000000..34b1dae<br>
---- /dev/null<br>
-+++ b/result/valid/766956.xml.err<br>
-@@ -0,0 +1,9 @@<br>
-+test/valid/dtds/766956.dtd:<wbr>2: parser error : PEReference: expecting ';'<br>
-+%ä%ent;<br>
-+ ^<br>
-+Entity: line 1: parser error : Content error in the external subset<br>
-+ %ent;<br>
-+ ^<br>
-+Entity: line 1:<br>
-+value<br>
-+^<br>
-diff --git a/result/valid/766956.xml.err.<wbr>rdr b/result/valid/766956.xml.err.<wbr>rdr<br>
-new file mode 100644<br>
-index 0000000..7760346<br>
---- /dev/null<br>
-+++ b/result/valid/766956.xml.err.<wbr>rdr<br>
-@@ -0,0 +1,10 @@<br>
-+test/valid/dtds/766956.dtd:<wbr>2: parser error : PEReference: expecting ';'<br>
-+%ä%ent;<br>
-+ ^<br>
-+Entity: line 1: parser error : Content error in the external subset<br>
-+ %ent;<br>
-+ ^<br>
-+Entity: line 1:<br>
-+value<br>
-+^<br>
-+./test/valid/766956.xml : failed to parse<br>
-diff --git a/runtest.c b/runtest.c<br>
-index bb74d2a..63e8c20 100644<br>
---- a/runtest.c<br>
-+++ b/runtest.c<br>
-@@ -4202,6 +4202,9 @@ testDesc testDescriptions[] = {<br>
- { "Error cases regression tests",<br>
- errParseTest, "./test/errors/*.xml", "result/errors/", "", ".err",<br>
- 0 },<br>
-+ { "Error cases regression tests (old 1.0)",<br>
-+ errParseTest, "./test/errors10/*.xml", "result/errors10/", "", ".err",<br>
-+ XML_PARSE_OLD10 },<br>
- #ifdef LIBXML_READER_ENABLED<br>
- { "Error cases stream regression tests",<br>
- streamParseTest, "./test/errors/*.xml", "result/errors/", NULL, ".str",<br>
-diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml<br>
-new file mode 100644<br>
-index 0000000..d9e9e83<br>
---- /dev/null<br>
-+++ b/test/errors10/781205.xml<br>
-@@ -0,0 +1,3 @@<br>
-+<!DOCTYPE D [<br>
-+ <!ENTITY % a "<:0000"><br>
-+ %a;<br>
-diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml<br>
-new file mode 100644<br>
-index 0000000..67476bc<br>
---- /dev/null<br>
-+++ b/test/errors10/781361.xml<br>
-@@ -0,0 +1,3 @@<br>
-+<!DOCTYPE doc [<br>
-+ <!ENTITY % elem "<!ELEMENT e0000000000"><br>
-+ %elem;<br>
-diff --git a/test/valid/766956.xml b/test/valid/766956.xml<br>
-new file mode 100644<br>
-index 0000000..19a95a0<br>
---- /dev/null<br>
-+++ b/test/valid/766956.xml<br>
-@@ -0,0 +1,2 @@<br>
-+<!DOCTYPE test SYSTEM "dtds/766956.dtd"><br>
-+<test/><br>
-diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd<br>
-new file mode 100644<br>
-index 0000000..dddde68<br>
---- /dev/null<br>
-+++ b/test/valid/dtds/766956.dtd<br>
-@@ -0,0 +1,2 @@<br>
-+<!ENTITY % ent "value"><br>
-+%ä%ent;<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_NULL_<wbr>pointer_derefs.patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_NULL_<wbr>pointer_derefs.patch<br>
deleted file mode 100644<br>
index c60e32f..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_NULL_<wbr>pointer_derefs.patch<br>
+++ /dev/null<br>
@@ -1,45 +0,0 @@<br>
-libxml2-2.9.4: Fix more NULL pointer derefs<br>
-<br>
-xpointer: Fix more NULL pointer derefs<br>
-<br>
-Upstream-Status: Backport [<a href="https://git.gnome.org/browse/libxml2/commit/?id=e905f08123e4a6e7731549e6f09dadff4cab65bd" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>e905f08123e4a6e7731549e6f09dad<wbr>ff4cab65bd</a>]<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-Signed-off-by: Pascal Bach <<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>><br>
-<br>
-diff --git a/xpointer.c b/xpointer.c<br>
-index 676c510..074db24 100644<br>
---- a/xpointer.c<br>
-+++ b/xpointer.c<br>
-@@ -555,7 +555,7 @@ xmlXPtrNewRangeNodeObject(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
- /*<br>
- * Empty set ...<br>
- */<br>
-- if (end->nodesetval->nodeNr <= 0)<br>
-+ if ((end->nodesetval == NULL) || (end->nodesetval->nodeNr <= 0))<br>
- return(NULL);<br>
- break;<br>
- default:<br>
-@@ -1400,7 +1400,7 @@ xmlXPtrEval(const xmlChar *str, xmlXPathContextPtr ctx) {<br>
- */<br>
- xmlNodeSetPtr set;<br>
- set = tmp->nodesetval;<br>
-- if ((set->nodeNr != 1) ||<br>
-+ if ((set == NULL) || (set->nodeNr != 1) ||<br>
- (set->nodeTab[0] != (xmlNodePtr) ctx->doc))<br>
- stack++;<br>
- } else<br>
-@@ -2073,9 +2073,11 @@ xmlXPtrRangeFunction(<wbr>xmlXPathParserContextPtr ctxt, int nargs) {<br>
- xmlXPathFreeObject(set);<br>
- XP_ERROR(XPATH_MEMORY_ERROR);<br>
- }<br>
-- for (i = 0;i < oldset->locNr;i++) {<br>
-- xmlXPtrLocationSetAdd(newset,<br>
-- xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));<br>
-+ if (oldset != NULL) {<br>
-+ for (i = 0;i < oldset->locNr;i++) {<br>
-+ xmlXPtrLocationSetAdd(newset,<br>
-+ xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));<br>
-+ }<br>
- }<br>
-<br>
- /*<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_and_<wbr>simplify_xmlParseStartTag2.<wbr>patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_and_<wbr>simplify_xmlParseStartTag2.<wbr>patch<br>
deleted file mode 100644<br>
index faa5770..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_and_<wbr>simplify_xmlParseStartTag2.<wbr>patch<br>
+++ /dev/null<br>
@@ -1,590 +0,0 @@<br>
-libxml2-2.9.4: Avoid reparsing and simplify control flow in xmlParseStartTag2<br>
-<br>
-[No upstream tracking]<br>
-<br>
-parser: Avoid reparsing in xmlParseStartTag2<br>
-<br>
-The code in xmlParseStartTag2 must handle the case that the input<br>
-buffer was grown and reallocated which can invalidate pointers to<br>
-attribute values. Before, this was handled by detecting changes of<br>
-the input buffer "base" pointer and, in case of a change, jumping<br>
-back to the beginning of the function and reparsing the start tag.<br>
-<br>
-The major problem of this approach is that whether an input buffer is<br>
-reallocated is nondeterministic, resulting in seemingly random test<br>
-failures. See the mailing list thread "runtest mystery bug: name2.xml<br>
-error case regression test" from 2012, for example.<br>
-<br>
-If a reallocation was detected, the code also made no attempts to<br>
-continue parsing in case of errors which makes a difference in<br>
-the lax "recover" mode.<br>
-<br>
-Now we store the current input buffer "base" pointer for each (not<br>
-separately allocated) attribute in the namespace URI field, which isn't<br>
-used until later. After the whole start tag was parsed, the pointers to<br>
-the attribute values are reconstructed using the offset between the<br>
-new and the old input buffer. This relies on arithmetic on dangling<br>
-pointers which is technically undefined behavior. But it seems like<br>
-the easiest and most efficient fix and a similar approach is used in<br>
-xmlParserInputGrow.<br>
-<br>
-This changes the error output of several tests, typically making it<br>
-more verbose because we try harder to continue parsing in case of errors.<br>
-<br>
-(Another possible solution is to check not only the "base" pointer<br>
-but the size of the input buffer as well. But this would result in<br>
-even more reparsing.)<br>
-<br>
-Remove some goto labels and deduplicate a bit of code after handling<br>
-namespaces.<br>
-<br>
-There were two bugs where parameter-entity references could lead to an<br>
-unexpected change of the input buffer in xmlParseNameComplex and<br>
-xmlDictLookup being called with an invalid pointer.<br>
-<br>
-<br>
-Upstream-Status: Backport<br>
- - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=07b7428b69c368611d215a140fe630b2d1e61349" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>07b7428b69c368611d215a140fe630<wbr>b2d1e61349</a>]<br>
- - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=855c19efb7cd30d927d673b3658563c4959ca6f0" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>855c19efb7cd30d927d673b3658563<wbr>c4959ca6f0</a>]<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-<br>
-diff --git a/parser.c b/parser.c<br>
-index 609a270..74016e3 100644<br>
---- a/parser.c<br>
-+++ b/parser.c<br>
-@@ -43,6 +43,7 @@<br>
- #include <limits.h><br>
- #include <string.h><br>
- #include <stdarg.h><br>
-+#include <stddef.h><br>
- #include <libxml/xmlmemory.h><br>
- #include <libxml/threads.h><br>
- #include <libxml/globals.h><br>
-@@ -9377,8 +9378,7 @@ xmlParseStartTag2(<wbr>xmlParserCtxtPtr ctxt, const xmlChar **pref,<br>
- const xmlChar **atts = ctxt->atts;<br>
- int maxatts = ctxt->maxatts;<br>
- int nratts, nbatts, nbdef;<br>
-- int i, j, nbNs, attval, oldline, oldcol, inputNr;<br>
-- const xmlChar *base;<br>
-+ int i, j, nbNs, attval;<br>
- unsigned long cur;<br>
- int nsNr = ctxt->nsNr;<br>
-<br>
-@@ -9392,13 +9392,8 @@ xmlParseStartTag2(<wbr>xmlParserCtxtPtr ctxt, const xmlChar **pref,<br>
- * The Shrinking is only possible once the full set of attribute<br>
- * callbacks have been done.<br>
- */<br>
--reparse:<br>
- SHRINK;<br>
-- base = ctxt->input->base;<br>
- cur = ctxt->input->cur - ctxt->input->base;<br>
-- inputNr = ctxt->inputNr;<br>
-- oldline = ctxt->input->line;<br>
-- oldcol = ctxt->input->col;<br>
- nbatts = 0;<br>
- nratts = 0;<br>
- nbdef = 0;<br>
-@@ -9422,8 +9417,6 @@ reparse:<br>
- */<br>
- SKIP_BLANKS;<br>
- GROW;<br>
-- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))<br>
-- goto base_changed;<br>
-<br>
- while (((RAW != '>') &&<br>
- ((RAW != '/') || (NXT(1) != '>')) &&<br>
-@@ -9434,203 +9427,174 @@ reparse:<br>
-<br>
- attname = xmlParseAttribute2(ctxt, prefix, localname,<br>
- &aprefix, &attvalue, &len, &alloc);<br>
-- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr)) {<br>
-- if ((attvalue != NULL) && (alloc != 0))<br>
-- xmlFree(attvalue);<br>
-- attvalue = NULL;<br>
-- goto base_changed;<br>
-- }<br>
-- if ((attname != NULL) && (attvalue != NULL)) {<br>
-- if (len < 0) len = xmlStrlen(attvalue);<br>
-- if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {<br>
-- const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);<br>
-- xmlURIPtr uri;<br>
--<br>
-- if (URL == NULL) {<br>
-- xmlErrMemory(ctxt, "dictionary allocation failure");<br>
-- if ((attvalue != NULL) && (alloc != 0))<br>
-- xmlFree(attvalue);<br>
-- return(NULL);<br>
-- }<br>
-- if (*URL != 0) {<br>
-- uri = xmlParseURI((const char *) URL);<br>
-- if (uri == NULL) {<br>
-- xmlNsErr(ctxt, XML_WAR_NS_URI,<br>
-- "xmlns: '%s' is not a valid URI\n",<br>
-- URL, NULL, NULL);<br>
-- } else {<br>
-- if (uri->scheme == NULL) {<br>
-- xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
-- "xmlns: URI %s is not absolute\n",<br>
-- URL, NULL, NULL);<br>
-- }<br>
-- xmlFreeURI(uri);<br>
-- }<br>
-- if (URL == ctxt->str_xml_ns) {<br>
-- if (attname != ctxt->str_xml) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "xml namespace URI cannot be the default namespace\n",<br>
-- NULL, NULL, NULL);<br>
-- }<br>
-- goto skip_default_ns;<br>
-- }<br>
-- if ((len == 29) &&<br>
-- (xmlStrEqual(URL,<br>
-- BAD_CAST "<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>"))) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "reuse of the xmlns namespace name is forbidden\n",<br>
-- NULL, NULL, NULL);<br>
-- goto skip_default_ns;<br>
-- }<br>
-- }<br>
-- /*<br>
-- * check that it's not a defined namespace<br>
-- */<br>
-- for (j = 1;j <= nbNs;j++)<br>
-- if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)<br>
-- break;<br>
-- if (j <= nbNs)<br>
-- xmlErrAttributeDup(ctxt, NULL, attname);<br>
-- else<br>
-- if (nsPush(ctxt, NULL, URL) > 0) nbNs++;<br>
--skip_default_ns:<br>
-- if ((attvalue != NULL) && (alloc != 0)) {<br>
-- xmlFree(attvalue);<br>
-- attvalue = NULL;<br>
-- }<br>
-- if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))<br>
-- break;<br>
-- if (!IS_BLANK_CH(RAW)) {<br>
-- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,<br>
-- "attributes construct error\n");<br>
-- break;<br>
-- }<br>
-- SKIP_BLANKS;<br>
-- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))<br>
-- goto base_changed;<br>
-- continue;<br>
-- }<br>
-- if (aprefix == ctxt->str_xmlns) {<br>
-- const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);<br>
-- xmlURIPtr uri;<br>
--<br>
-- if (attname == ctxt->str_xml) {<br>
-- if (URL != ctxt->str_xml_ns) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "xml namespace prefix mapped to wrong URI\n",<br>
-- NULL, NULL, NULL);<br>
-- }<br>
-- /*<br>
-- * Do not keep a namespace definition node<br>
-- */<br>
-- goto skip_ns;<br>
-- }<br>
-+ if ((attname == NULL) || (attvalue == NULL))<br>
-+ goto next_attr;<br>
-+ if (len < 0) len = xmlStrlen(attvalue);<br>
-+<br>
-+ if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {<br>
-+ const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);<br>
-+ xmlURIPtr uri;<br>
-+<br>
-+ if (URL == NULL) {<br>
-+ xmlErrMemory(ctxt, "dictionary allocation failure");<br>
-+ if ((attvalue != NULL) && (alloc != 0))<br>
-+ xmlFree(attvalue);<br>
-+ return(NULL);<br>
-+ }<br>
-+ if (*URL != 0) {<br>
-+ uri = xmlParseURI((const char *) URL);<br>
-+ if (uri == NULL) {<br>
-+ xmlNsErr(ctxt, XML_WAR_NS_URI,<br>
-+ "xmlns: '%s' is not a valid URI\n",<br>
-+ URL, NULL, NULL);<br>
-+ } else {<br>
-+ if (uri->scheme == NULL) {<br>
-+ xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
-+ "xmlns: URI %s is not absolute\n",<br>
-+ URL, NULL, NULL);<br>
-+ }<br>
-+ xmlFreeURI(uri);<br>
-+ }<br>
- if (URL == ctxt->str_xml_ns) {<br>
-- if (attname != ctxt->str_xml) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "xml namespace URI mapped to wrong prefix\n",<br>
-- NULL, NULL, NULL);<br>
-- }<br>
-- goto skip_ns;<br>
-- }<br>
-- if (attname == ctxt->str_xmlns) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "redefinition of the xmlns prefix is forbidden\n",<br>
-- NULL, NULL, NULL);<br>
-- goto skip_ns;<br>
-- }<br>
-- if ((len == 29) &&<br>
-- (xmlStrEqual(URL,<br>
-- BAD_CAST "<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>"))) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "reuse of the xmlns namespace name is forbidden\n",<br>
-- NULL, NULL, NULL);<br>
-- goto skip_ns;<br>
-- }<br>
-- if ((URL == NULL) || (URL[0] == 0)) {<br>
-- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-- "xmlns:%s: Empty XML namespace is not allowed\n",<br>
-- attname, NULL, NULL);<br>
-- goto skip_ns;<br>
-- } else {<br>
-- uri = xmlParseURI((const char *) URL);<br>
-- if (uri == NULL) {<br>
-- xmlNsErr(ctxt, XML_WAR_NS_URI,<br>
-- "xmlns:%s: '%s' is not a valid URI\n",<br>
-- attname, URL, NULL);<br>
-- } else {<br>
-- if ((ctxt->pedantic) && (uri->scheme == NULL)) {<br>
-- xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
-- "xmlns:%s: URI %s is not absolute\n",<br>
-- attname, URL, NULL);<br>
-- }<br>
-- xmlFreeURI(uri);<br>
-- }<br>
-- }<br>
--<br>
-- /*<br>
-- * check that it's not a defined namespace<br>
-- */<br>
-- for (j = 1;j <= nbNs;j++)<br>
-- if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)<br>
-- break;<br>
-- if (j <= nbNs)<br>
-- xmlErrAttributeDup(ctxt, aprefix, attname);<br>
-- else<br>
-- if (nsPush(ctxt, attname, URL) > 0) nbNs++;<br>
--skip_ns:<br>
-- if ((attvalue != NULL) && (alloc != 0)) {<br>
-- xmlFree(attvalue);<br>
-- attvalue = NULL;<br>
-- }<br>
-- if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))<br>
-- break;<br>
-- if (!IS_BLANK_CH(RAW)) {<br>
-- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,<br>
-- "attributes construct error\n");<br>
-- break;<br>
-- }<br>
-- SKIP_BLANKS;<br>
-- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))<br>
-- goto base_changed;<br>
-- continue;<br>
-- }<br>
-+ if (attname != ctxt->str_xml) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "xml namespace URI cannot be the default namespace\n",<br>
-+ NULL, NULL, NULL);<br>
-+ }<br>
-+ goto next_attr;<br>
-+ }<br>
-+ if ((len == 29) &&<br>
-+ (xmlStrEqual(URL,<br>
-+ BAD_CAST "<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>"))) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "reuse of the xmlns namespace name is forbidden\n",<br>
-+ NULL, NULL, NULL);<br>
-+ goto next_attr;<br>
-+ }<br>
-+ }<br>
-+ /*<br>
-+ * check that it's not a defined namespace<br>
-+ */<br>
-+ for (j = 1;j <= nbNs;j++)<br>
-+ if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)<br>
-+ break;<br>
-+ if (j <= nbNs)<br>
-+ xmlErrAttributeDup(ctxt, NULL, attname);<br>
-+ else<br>
-+ if (nsPush(ctxt, NULL, URL) > 0) nbNs++;<br>
-+<br>
-+ } else if (aprefix == ctxt->str_xmlns) {<br>
-+ const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);<br>
-+ xmlURIPtr uri;<br>
-+<br>
-+ if (attname == ctxt->str_xml) {<br>
-+ if (URL != ctxt->str_xml_ns) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "xml namespace prefix mapped to wrong URI\n",<br>
-+ NULL, NULL, NULL);<br>
-+ }<br>
-+ /*<br>
-+ * Do not keep a namespace definition node<br>
-+ */<br>
-+ goto next_attr;<br>
-+ }<br>
-+ if (URL == ctxt->str_xml_ns) {<br>
-+ if (attname != ctxt->str_xml) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "xml namespace URI mapped to wrong prefix\n",<br>
-+ NULL, NULL, NULL);<br>
-+ }<br>
-+ goto next_attr;<br>
-+ }<br>
-+ if (attname == ctxt->str_xmlns) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "redefinition of the xmlns prefix is forbidden\n",<br>
-+ NULL, NULL, NULL);<br>
-+ goto next_attr;<br>
-+ }<br>
-+ if ((len == 29) &&<br>
-+ (xmlStrEqual(URL,<br>
-+ BAD_CAST "<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>"))) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "reuse of the xmlns namespace name is forbidden\n",<br>
-+ NULL, NULL, NULL);<br>
-+ goto next_attr;<br>
-+ }<br>
-+ if ((URL == NULL) || (URL[0] == 0)) {<br>
-+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+ "xmlns:%s: Empty XML namespace is not allowed\n",<br>
-+ attname, NULL, NULL);<br>
-+ goto next_attr;<br>
-+ } else {<br>
-+ uri = xmlParseURI((const char *) URL);<br>
-+ if (uri == NULL) {<br>
-+ xmlNsErr(ctxt, XML_WAR_NS_URI,<br>
-+ "xmlns:%s: '%s' is not a valid URI\n",<br>
-+ attname, URL, NULL);<br>
-+ } else {<br>
-+ if ((ctxt->pedantic) && (uri->scheme == NULL)) {<br>
-+ xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
-+ "xmlns:%s: URI %s is not absolute\n",<br>
-+ attname, URL, NULL);<br>
-+ }<br>
-+ xmlFreeURI(uri);<br>
-+ }<br>
-+ }<br>
-<br>
-- /*<br>
-- * Add the pair to atts<br>
-- */<br>
-- if ((atts == NULL) || (nbatts + 5 > maxatts)) {<br>
-- if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {<br>
-- if (attvalue[len] == 0)<br>
-- xmlFree(attvalue);<br>
-- goto failed;<br>
-- }<br>
-- maxatts = ctxt->maxatts;<br>
-- atts = ctxt->atts;<br>
-- }<br>
-- ctxt->attallocs[nratts++] = alloc;<br>
-- atts[nbatts++] = attname;<br>
-- atts[nbatts++] = aprefix;<br>
-- atts[nbatts++] = NULL; /* the URI will be fetched later */<br>
-- atts[nbatts++] = attvalue;<br>
-- attvalue += len;<br>
-- atts[nbatts++] = attvalue;<br>
-- /*<br>
-- * tag if some deallocation is needed<br>
-- */<br>
-- if (alloc != 0) attval = 1;<br>
-- } else {<br>
-- if ((attvalue != NULL) && (attvalue[len] == 0))<br>
-- xmlFree(attvalue);<br>
-- }<br>
-+ /*<br>
-+ * check that it's not a defined namespace<br>
-+ */<br>
-+ for (j = 1;j <= nbNs;j++)<br>
-+ if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)<br>
-+ break;<br>
-+ if (j <= nbNs)<br>
-+ xmlErrAttributeDup(ctxt, aprefix, attname);<br>
-+ else<br>
-+ if (nsPush(ctxt, attname, URL) > 0) nbNs++;<br>
-+<br>
-+ } else {<br>
-+ /*<br>
-+ * Add the pair to atts<br>
-+ */<br>
-+ if ((atts == NULL) || (nbatts + 5 > maxatts)) {<br>
-+ if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {<br>
-+ goto next_attr;<br>
-+ }<br>
-+ maxatts = ctxt->maxatts;<br>
-+ atts = ctxt->atts;<br>
-+ }<br>
-+ ctxt->attallocs[nratts++] = alloc;<br>
-+ atts[nbatts++] = attname;<br>
-+ atts[nbatts++] = aprefix;<br>
-+ /*<br>
-+ * The namespace URI field is used temporarily to point at the<br>
-+ * base of the current input buffer for non-alloced attributes.<br>
-+ * When the input buffer is reallocated, all the pointers become<br>
-+ * invalid, but they can be reconstructed later.<br>
-+ */<br>
-+ if (alloc)<br>
-+ atts[nbatts++] = NULL;<br>
-+ else<br>
-+ atts[nbatts++] = ctxt->input->base;<br>
-+ atts[nbatts++] = attvalue;<br>
-+ attvalue += len;<br>
-+ atts[nbatts++] = attvalue;<br>
-+ /*<br>
-+ * tag if some deallocation is needed<br>
-+ */<br>
-+ if (alloc != 0) attval = 1;<br>
-+ attvalue = NULL; /* moved into atts */<br>
-+ }<br>
-<br>
--failed:<br>
-+next_attr:<br>
-+ if ((attvalue != NULL) && (alloc != 0)) {<br>
-+ xmlFree(attvalue);<br>
-+ attvalue = NULL;<br>
-+ }<br>
-<br>
- GROW<br>
- if (ctxt->instate == XML_PARSER_EOF)<br>
- break;<br>
-- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))<br>
-- goto base_changed;<br>
- if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))<br>
- break;<br>
- if (!IS_BLANK_CH(RAW)) {<br>
-@@ -9646,8 +9610,20 @@ failed:<br>
- break;<br>
- }<br>
- GROW;<br>
-- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))<br>
-- goto base_changed;<br>
-+ }<br>
-+<br>
-+ /* Reconstruct attribute value pointers. */<br>
-+ for (i = 0, j = 0; j < nratts; i += 5, j++) {<br>
-+ if (atts[i+2] != NULL) {<br>
-+ /*<br>
-+ * Arithmetic on dangling pointers is technically undefined<br>
-+ * behavior, but well...<br>
-+ */<br>
-+ ptrdiff_t offset = ctxt->input->base - atts[i+2];<br>
-+ atts[i+2] = NULL; /* Reset repurposed namespace URI */<br>
-+ atts[i+3] += offset; /* value */<br>
-+ atts[i+4] += offset; /* valuend */<br>
-+ }<br>
- }<br>
-<br>
- /*<br>
-@@ -9804,34 +9780,6 @@ failed:<br>
- }<br>
-<br>
- return(localname);<br>
--<br>
--base_changed:<br>
-- /*<br>
-- * the attribute strings are valid iif the base didn't changed<br>
-- */<br>
-- if (attval != 0) {<br>
-- for (i = 3,j = 0; j < nratts;i += 5,j++)<br>
-- if ((ctxt->attallocs[j] != 0) && (atts[i] != NULL))<br>
-- xmlFree((xmlChar *) atts[i]);<br>
-- }<br>
--<br>
-- /*<br>
-- * We can't switch from one entity to another in the middle<br>
-- * of a start tag<br>
-- */<br>
-- if (inputNr != ctxt->inputNr) {<br>
-- xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,<br>
-- "Start tag doesn't start and stop in the same entity\n");<br>
-- return(NULL);<br>
-- }<br>
--<br>
-- ctxt->input->cur = ctxt->input->base + cur;<br>
-- ctxt->input->line = oldline;<br>
-- ctxt->input->col = oldcol;<br>
-- if (ctxt->wellFormed == 1) {<br>
-- goto reparse;<br>
-- }<br>
-- return(NULL);<br>
- }<br>
-<br>
- /**<br>
-diff --git a/result/errors/759398.xml.err b/result/errors/759398.xml.err<br>
-index e08d9bf..f6036a3 100644<br>
---- a/result/errors/759398.xml.err<br>
-+++ b/result/errors/759398.xml.err<br>
-@@ -1,9 +1,12 @@<br>
- ./test/errors/759398.xml:210: parser error : StartTag: invalid element name<br>
- need to worry about parsers whi<! don't expand PErefs finding<br>
- ^<br>
--./test/errors/759398.xml:<wbr>309: parser error : Opening and ending tag mismatch: spec line 50 and termdef<br>
-+./test/errors/759398.xml:<wbr>309: parser error : Opening and ending tag mismatch: №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№!<br>
№№№<br>
№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>â!<br>
��№№â<br>
��№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>�„!<br>
�№№�„<br>
�№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№<wbr>№№№№№№№№№№№№№№№№№№№m line 308 and termdef<br>
- and provide access to their content and structure.</termdef> <termdef<br>
- ^<br>
--./test/errors/759398.xml:<wbr>309: parser error : Extra content at the end of the document<br>
--and provide access to their content and structure.</termdef> <termdef<br>
-- ^<br>
-+./test/errors/759398.xml:<wbr>314: parser error : Opening and ending tag mismatch: spec line 50 and p<br>
-+data and the information it must provide to the application.</p><br>
-+ ^<br>
-+./test/errors/759398.xml:<wbr>316: parser error : Extra content at the end of the document<br>
-+<div2 id='sec-origin-goals'><br>
-+^<br>
-diff --git a/result/errors/attr1.xml.err b/result/errors/attr1.xml.err<br>
-index 4f08538..c4c4fc8 100644<br>
---- a/result/errors/attr1.xml.err<br>
-+++ b/result/errors/attr1.xml.err<br>
-@@ -1,6 +1,9 @@<br>
- ./test/errors/attr1.xml:2: parser error : AttValue: ' expected<br>
-<br>
- ^<br>
--./test/errors/attr1.xml:1: parser error : Extra content at the end of the document<br>
--<foo foo="<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooo<br>
-- ^<br>
-+./test/errors/attr1.xml:2: parser error : attributes construct error<br>
-+<br>
-+^<br>
-+./test/errors/attr1.xml:2: parser error : Couldn't find end of Start Tag foo line 1<br>
-+<br>
-+^<br>
-diff --git a/result/errors/attr2.xml.err b/result/errors/attr2.xml.err<br>
-index c8a9c7d..77e342e 100644<br>
---- a/result/errors/attr2.xml.err<br>
-+++ b/result/errors/attr2.xml.err<br>
-@@ -1,6 +1,9 @@<br>
- ./test/errors/attr2.xml:2: parser error : AttValue: ' expected<br>
-<br>
- ^<br>
--./test/errors/attr2.xml:1: parser error : Extra content at the end of the document<br>
--<foo foo="><wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>ooooooooo<br>
-- ^<br>
-+./test/errors/attr2.xml:2: parser error : attributes construct error<br>
-+<br>
-+^<br>
-+./test/errors/attr2.xml:2: parser error : Couldn't find end of Start Tag foo line 1<br>
-+<br>
-+^<br>
-diff --git a/result/errors/name2.xml.err b/result/errors/name2.xml.err<br>
-index a6649a1..8a6acee 100644<br>
---- a/result/errors/name2.xml.err<br>
-+++ b/result/errors/name2.xml.err<br>
-@@ -1,6 +1,9 @@<br>
- ./test/errors/name2.xml:2: parser error : Specification mandate value for attribute fooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>ooo!<br>
ooooooooo<br>
oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooo!<br>
ooooooooo<br>
oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooo!<br>
ooooooooo<br>
oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooo!<br>
ooooooooo<br>
oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooo!<br>
ooooooooo<br>
oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>ooooooooooooooooooooo<br>
-<br>
- ^<br>
--./test/errors/name2.xml:1: parser error : Extra content at the end of the document<br>
--<foo fooooooooooooooooooooooooooooo<wbr>oooooooooooooooooooooooooooooo<wbr>ooooooooooooooo<br>
-- ^<br>
-+./test/errors/name2.xml:2: parser error : attributes construct error<br>
-+<br>
-+^<br>
-+./test/errors/name2.xml:2: parser error : Couldn't find end of Start Tag foo line 1<br>
-+<br>
-+^<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_node_<wbr>comparison.patch b/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_node_<wbr>comparison.patch<br>
deleted file mode 100644<br>
index 65f6bef..0000000<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/libxml2-fix_node_<wbr>comparison.patch<br>
+++ /dev/null<br>
@@ -1,67 +0,0 @@<br>
-libxml2-2.9.4: Fix comparison with root node in xmlXPathCmpNodes and NULL pointer deref in XPointer<br>
-<br>
-xpath:<br>
- - Check for errors after evaluating first operand.<br>
- - Add sanity check for empty stack.<br>
- - Include comparation in changes from xmlXPathCmpNodesExt to xmlXPathCmpNodes<br>
-<br>
-Upstream-Status: Backport<br>
- - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=c1d1f7121194036608bf555f08d3062a36fd344b" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>c1d1f7121194036608bf555f08d306<wbr>2a36fd344b</a>]<br>
- - [<a href="https://git.gnome.org/browse/libxml2/commit/?id=a005199330b86dada19d162cae15ef9bdcb6baa8" rel="noreferrer" target="_blank">https://git.gnome.org/browse/<wbr>libxml2/commit/?id=<wbr>a005199330b86dada19d162cae15ef<wbr>9bdcb6baa8</a>]<br>
-CVE: CVE-2016-5131<br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
-Signed-off-by: Pascal Bach <<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>><br>
-<br>
-diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror<br>
-new file mode 100644<br>
-index 0000000..d589882<br>
---- /dev/null<br>
-+++ b/result/XPath/xptr/viderror<br>
-@@ -0,0 +1,4 @@<br>
-+<br>
-+========================<br>
-+Expression: xpointer(non-existing-fn()/<wbr>range-to(id('chapter2')))<br>
-+Object is empty (NULL)<br>
-diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror<br>
-new file mode 100644<br>
-index 0000000..da8c53b<br>
---- /dev/null<br>
-+++ b/test/XPath/xptr/viderror<br>
-@@ -0,0 +1 @@<br>
-+xpointer(non-existing-fn()/<wbr>range-to(id('chapter2')))<br>
-diff --git a/xpath.c b/xpath.c<br>
-index 113bce6..d992841 100644<br>
---- a/xpath.c<br>
-+++ b/xpath.c<br>
-@@ -3342,13 +3342,13 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr node2) {<br>
- * compute depth to root<br>
- */<br>
- for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {<br>
-- if (cur == node1)<br>
-+ if (cur->parent == node1)<br>
- return(1);<br>
- depth2++;<br>
- }<br>
- root = cur;<br>
- for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {<br>
-- if (cur == node2)<br>
-+ if (cur->parent == node2)<br>
- return(-1);<br>
- depth1++;<br>
- }<br>
-@@ -14005,9 +14005,14 @@ xmlXPathCompOpEval(<wbr>xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op)<br>
- xmlNodeSetPtr oldset;<br>
- int i, j;<br>
-<br>
-- if (op->ch1 != -1)<br>
-+ if (op->ch1 != -1) {<br>
- total +=<br>
- xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);<br>
-+ CHECK_ERROR0;<br>
-+ }<br>
-+ if (ctxt->value == NULL) {<br>
-+ XP_ERROR0(XPATH_INVALID_<wbr>OPERAND);<br>
-+ }<br>
- if (op->ch2 == -1)<br>
- return (total);<br>
-<br>
diff --git a/meta/recipes-core/libxml/<wbr>libxml2/runtest.patch b/meta/recipes-core/libxml/<wbr>libxml2/runtest.patch<br>
</div></div>index 6e56857..cb171d5 100644<br>
--- a/meta/recipes-core/libxml/<wbr>libxml2/runtest.patch<br>
+++ b/meta/recipes-core/libxml/<wbr>libxml2/runtest.patch<br>
@@ -2,47 +2,29 @@ Add 'install-ptest' rule.<br>
<span class=""> Print a standard result line for each test.<br>
<br>
Signed-off-by: Mihaela Sendrea <<a href="mailto:mihaela.sendrea@enea.com">mihaela.sendrea@enea.com</a>><br>
-Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@enea.com">andrej.valek@enea.com</a>><br>
+Signed-off-by: Andrej Valek <<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>><br>
Upstream-Status: Backport<br>
<br>
diff -uNr a/Makefile.am b/Makefile.am<br>
---- a/Makefile.am 2016-05-22 03:49:02.000000000 +0200<br>
-+++ b/Makefile.am 2017-06-14 10:38:43.381305385 +0200<br>
-@@ -202,10 +202,24 @@<br>
+--- a/Makefile.am 2017-08-28 15:01:14.000000000 +0200<br>
++++ b/Makefile.am 2017-09-05 08:06:05.752287323 +0200<br>
+@@ -202,6 +202,15 @@<br>
#testOOM_DEPENDENCIES = $(DEPS)<br>
#testOOM_LDADD= $(LDADDS)<br>
<br>
</span> +install-ptest:<br>
+ @(if [ -d .libs ] ; then cd .libs; fi; \<br>
<span class="">-+ install $(noinst_PROGRAMS) $(DESTDIR))<br>
++ install $(check_PROGRAMS) $(DESTDIR))<br>
</span> + cp -r $(srcdir)/test $(DESTDIR)<br>
+ cp -r $(srcdir)/result $(DESTDIR)<br>
+ cp -r $(srcdir)/python $(DESTDIR)<br>
<div class="HOEnZb"><div class="h5"> + cp Makefile $(DESTDIR)<br>
+ sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/Makefile<br>
+<br>
- runtests:<br>
+ runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \<br>
+ testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)<br>
[ -d test ] || $(LN_S) $(srcdir)/test .<br>
- [ -d result ] || $(LN_S) $(srcdir)/result .<br>
-- $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)<br>
-+ $(CHECKER) ./runtest$(EXEEXT) && \<br>
-+ $(CHECKER) ./testrecurse$(EXEEXT) && \<br>
-+ ASAN_OPTIONS="$$ASAN_OPTIONS:<wbr>detect_leaks=0" $(CHECKER) ./testapi$(EXEEXT) && \<br>
-+ $(CHECKER) ./testchar$(EXEEXT) && \<br>
-+ $(CHECKER) ./testdict$(EXEEXT) && \<br>
-+ $(CHECKER) ./runxmlconf$(EXEEXT)<br>
- @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \<br>
- $(MAKE) tests ; fi)<br>
-<br>
-@@ -229,7 +243,7 @@<br>
-<br>
- APItests: testapi$(EXEEXT)<br>
- @echo "## Running the API regression tests this may take a little while"<br>
-- -@($(CHECKER) $(top_builddir)/testapi -q)<br>
-+ -@(ASAN_OPTIONS="$$ASAN_<wbr>OPTIONS:detect_leaks=0" $(CHECKER) $(top_builddir)/testapi -q)<br>
-<br>
- HTMLtests : testHTML$(EXEEXT)<br>
- @(echo > .memdump)<br>
+<br>
diff -uNr a/runsuite.c b/runsuite.c<br>
--- a/runsuite.c 2013-04-12 16:17:11.462823238 +0200<br>
+++ b/runsuite.c 2013-04-17 14:07:24.352693211 +0200<br>
diff --git a/meta/recipes-core/libxml/<a href="http://libxml2_2.9.4.bb" rel="noreferrer" target="_blank">lib<wbr>xml2_2.9.4.bb</a> b/meta/recipes-core/libxml/<a href="http://libxml2_2.9.5.bb" rel="noreferrer" target="_blank">lib<wbr>xml2_2.9.5.bb</a><br>
similarity index 85%<br>
rename from meta/recipes-core/libxml/<a href="http://libxml2_2.9.4.bb" rel="noreferrer" target="_blank">libxm<wbr>l2_2.9.4.bb</a><br>
rename to meta/recipes-core/libxml/<a href="http://libxml2_2.9.5.bb" rel="noreferrer" target="_blank">libxm<wbr>l2_2.9.5.bb</a><br>
index 107539b..16391c3 100644<br>
--- a/meta/recipes-core/libxml/<a href="http://libxml2_2.9.4.bb" rel="noreferrer" target="_blank">lib<wbr>xml2_2.9.4.bb</a><br>
+++ b/meta/recipes-core/libxml/<a href="http://libxml2_2.9.5.bb" rel="noreferrer" target="_blank">lib<wbr>xml2_2.9.5.bb</a><br>
@@ -19,21 +19,11 @@ SRC_URI = "<a href="ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar" rel="noreferrer" target="_blank">ftp://xmlsoft.org/libxml2/<wbr>libxml2-${PV}.tar.gz;name=<wbr>libtar</a> \<br>
file://run-ptest \<br>
file://python-sitepackages-<wbr>dir.patch \<br>
file://libxml-m4-use-<wbr>pkgconfig.patch \<br>
- file://libxml2-fix_node_<wbr>comparison.patch \<br>
- file://libxml2-CVE-2016-5131.<wbr>patch \<br>
- file://libxml2-CVE-2016-4658.<wbr>patch \<br>
- file://libxml2-fix_NULL_<wbr>pointer_derefs.patch \<br>
- file://libxml2-fix_and_<wbr>simplify_xmlParseStartTag2.<wbr>patch \<br>
- file://libxml2-CVE-2017-9047_<wbr>CVE-2017-9048.patch \<br>
- file://libxml2-CVE-2017-9049_<wbr>CVE-2017-9050.patch \<br>
- file://libxml2-CVE-2017-5969.<wbr>patch \<br>
- file://libxml2-CVE-2017-0663.<wbr>patch \<br>
- file://libxml2-CVE-2017-8872.<wbr>patch \<br>
file://0001-Make-ptest-run-<wbr>the-python-tests-if-python-is-<wbr>enabled.patch \<br>
"<br>
<br>
-SRC_URI[libtar.md5sum] = "<wbr>ae249165c173b1ff386ee8ad676815<wbr>f5"<br>
-SRC_URI[libtar.sha256sum] = "<wbr>ffb911191e509b966deb55de705387<wbr>f14156e1a56b21824357cdf0053233<wbr>633c"<br>
+SRC_URI[libtar.md5sum] = "<wbr>5ce0da9bdaa267b40c4ca36d35363b<wbr>8b"<br>
+SRC_URI[libtar.sha256sum] = "<wbr>4031c1ecee9ce7ba4f313e91ef6284<wbr>164885cdb69937a123f6a83bb6a72d<wbr>cd38"<br>
SRC_URI[testtar.md5sum] = "<wbr>ae3d1ebe000a3972afa104ca7f0e1b<wbr>4a"<br>
SRC_URI[testtar.sha256sum] = "<wbr>96151685cec997e1f9f3387e3626d6<wbr>1e6284d4d6e66e0e440c209286c03e<wbr>9cc7"<br>
<br>
--<br>
2.1.4<br>
<br>
</div></div><br>--<br>
______________________________<wbr>_________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
<br></blockquote></div><br></div>