<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 &#39;testSchemas&#39;: No such file or directory</div><div><div>| install: cannot stat &#39;testRelax&#39;: No such file or directory</div><div>| install: cannot stat &#39;testSAX&#39;: No such file or directory</div><div>| install: cannot stat &#39;testHTML&#39;: No such file or directory</div><div>| install: cannot stat &#39;testXPath&#39;: No such file or directory</div><div>| install: cannot stat &#39;testURI&#39;: No such file or directory</div><div>| install: cannot stat &#39;testThreads&#39;: No such file or directory</div><div>| install: cannot stat &#39;testC14N&#39;: No such file or directory</div><div>| install: cannot stat &#39;testAutomata&#39;: No such file or directory</div><div>| install: cannot stat &#39;testRegexp&#39;: No such file or directory</div><div>| install: cannot stat &#39;testReader&#39;: No such file or directory</div><div>| install: cannot stat &#39;testapi&#39;: No such file or directory</div><div>| install: cannot stat &#39;testModule&#39;: No such file or directory</div><div>| install: cannot stat &#39;runtest&#39;: No such file or directory</div><div>| install: cannot stat &#39;runsuite&#39;: No such file or directory</div><div>| install: cannot stat &#39;testchar&#39;: No such file or directory</div><div>| install: cannot stat &#39;testdict&#39;: No such file or directory</div><div>| install: cannot stat &#39;runxmlconf&#39;: No such file or directory</div><div>| install: cannot stat &#39;testrecurse&#39;: No such file or directory</div><div>| install: cannot stat &#39;testlimits&#39;: No such file or directory</div><div>| Makefile:1908: recipe for target &#39;install-ptest&#39; 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">&lt;<a href="mailto:andrej.valek@siemens.com" target="_blank">andrej.valek@siemens.com</a>&gt;</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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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> =&gt; <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> =&gt; <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 &quot;*** If you have an old version installed, it is best to remove it, although&quot;<br>
 -          echo &quot;*** you may also be able to get things to work by modifying LD_LIBRARY_PATH&quot; ],<br>
 -        [ echo &quot;*** The test program failed to compile or link. See the file config.log for the&quot;<br>
--          echo &quot;*** exact error that occured. This usually means LIBXML was incorrectly installed&quot;<br>
+-          echo &quot;*** exact error that occurred. This usually means LIBXML was incorrectly installed&quot;<br>
 -          echo &quot;*** or that you have moved LIBXML since it was installed. In the latter case, you&quot;<br>
 -          echo &quot;*** may want to edit the xml2-config script: $XML2_CONFIG&quot; ])<br>
 -          CPPFLAGS=&quot;$ac_save_CPPFLAGS&quot;<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&#39;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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<br>
-Signed-off-by: Pascal Bach &lt;<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>&gt;<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) &amp;&amp; (start-&gt;type == XML_NAMESPACE_DECL))<br>
-+      return(NULL);<br>
-+    if ((end != NULL) &amp;&amp; (end-&gt;type == XML_NAMESPACE_DECL))<br>
-+      return(NULL);<br>
-+<br>
-+    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
-+    if (ret == NULL) {<br>
-+        xmlXPtrErrMemory(&quot;allocating range&quot;);<br>
-+      return(NULL);<br>
-+    }<br>
-+    memset(ret, 0, sizeof(xmlXPathObject));<br>
-+    ret-&gt;type = XPATH_RANGE;<br>
-+    ret-&gt;user = start;<br>
-+    ret-&gt;index = startindex;<br>
-+    ret-&gt;user2 = end;<br>
-+    ret-&gt;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 &lt; 0)<br>
-       return(NULL);<br>
-<br>
--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
--    if (ret == NULL) {<br>
--        xmlXPtrErrMemory(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start;<br>
--    ret-&gt;index = startindex;<br>
--    ret-&gt;user2 = end;<br>
--    ret-&gt;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-&gt;type != XPATH_POINT)<br>
-       return(NULL);<br>
-<br>
--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
--    if (ret == NULL) {<br>
--        xmlXPtrErrMemory(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start-&gt;user;<br>
--    ret-&gt;index = start-&gt;index;<br>
--    ret-&gt;user2 = end-&gt;user;<br>
--    ret-&gt;index2 = end-&gt;index;<br>
-+    ret = xmlXPtrNewRangeInternal(start-<wbr>&gt;user, start-&gt;index, end-&gt;user,<br>
-+                                end-&gt;index);<br>
-     xmlXPtrRangeCheckOrder(ret);<br>
-     return(ret);<br>
- }<br>
-@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(<wbr>xmlXPathObjectPtr start, xmlNodePtr end) {<br>
-     if (start-&gt;type != XPATH_POINT)<br>
-       return(NULL);<br>
-<br>
--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
--    if (ret == NULL) {<br>
--        xmlXPtrErrMemory(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start-&gt;user;<br>
--    ret-&gt;index = start-&gt;index;<br>
--    ret-&gt;user2 = end;<br>
--    ret-&gt;index2 = -1;<br>
-+    ret = xmlXPtrNewRangeInternal(start-<wbr>&gt;user, start-&gt;index, end, -1);<br>
-     xmlXPtrRangeCheckOrder(ret);<br>
-     return(ret);<br>
- }<br>
-@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
-     if (end-&gt;type != XPATH_POINT)<br>
-       return(NULL);<br>
-<br>
--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(<wbr>xmlXPathObject));<br>
--    if (ret == NULL) {<br>
--        xmlXPtrErrMemory(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start;<br>
--    ret-&gt;index = -1;<br>
--    ret-&gt;user2 = end-&gt;user;<br>
--    ret-&gt;index2 = end-&gt;index;<br>
-+    ret = xmlXPtrNewRangeInternal(start, -1, end-&gt;user, end-&gt;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(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start;<br>
--    ret-&gt;index = -1;<br>
--    ret-&gt;user2 = end;<br>
--    ret-&gt;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(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start;<br>
--    ret-&gt;index = -1;<br>
--    ret-&gt;user2 = NULL;<br>
--    ret-&gt;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-&gt;type) {<br>
-       case XPATH_POINT:<br>
-+          endNode = end-&gt;user;<br>
-+          endIndex = end-&gt;index;<br>
-+          break;<br>
-       case XPATH_RANGE:<br>
-+          endNode = end-&gt;user2;<br>
-+          endIndex = end-&gt;index2;<br>
-           break;<br>
-       case XPATH_NODESET:<br>
-           /*<br>
-@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(<wbr>xmlNodePtr start, xmlXPathObjectPtr end) {<br>
-            */<br>
-           if (end-&gt;nodesetval-&gt;nodeNr &lt;= 0)<br>
-               return(NULL);<br>
-+          endNode = end-&gt;nodesetval-&gt;nodeTab[end-&gt;<wbr>nodesetval-&gt;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(&quot;allocating range&quot;);<br>
--      return(NULL);<br>
--    }<br>
--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));<br>
--    ret-&gt;type = XPATH_RANGE;<br>
--    ret-&gt;user = start;<br>
--    ret-&gt;index = -1;<br>
--    switch (end-&gt;type) {<br>
--      case XPATH_POINT:<br>
--          ret-&gt;user2 = end-&gt;user;<br>
--          ret-&gt;index2 = end-&gt;index;<br>
--          break;<br>
--      case XPATH_RANGE:<br>
--          ret-&gt;user2 = end-&gt;user2;<br>
--          ret-&gt;index2 = end-&gt;index2;<br>
--          break;<br>
--      case XPATH_NODESET: {<br>
--          ret-&gt;user2 = end-&gt;nodesetval-&gt;nodeTab[end-&gt;<wbr>nodesetval-&gt;nodeNr - 1];<br>
--          ret-&gt;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-&gt;user;<br>
-                   if (node != NULL) {<br>
--                      if (node-&gt;type == XML_ATTRIBUTE_NODE) {<br>
--                          /* TODO: Namespace Nodes ??? */<br>
-+                      if ((node-&gt;type == XML_ATTRIBUTE_NODE) ||<br>
-+                           (node-&gt;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-&gt;user2;<br>
-                   if (node != NULL) {<br>
--                      if (node-&gt;type == XML_ATTRIBUTE_NODE) {<br>
--                          /* TODO: Namespace Nodes ??? */<br>
-+                      if ((node-&gt;type == XML_ATTRIBUTE_NODE) ||<br>
-+                           (node-&gt;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 &lt;<a href="mailto:wellnhofer@aevum.de">wellnhofer@aevum.de</a>&gt;<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&#39;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 &lt;<a href="mailto:yi.zhao@windirver.com">yi.zhao@windirver.com</a>&gt;<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(&#39;<wbr>chapter2&#39;)))<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(&#39;chapter1&#39;)/p)<br>
- xpointer(id(&#39;chapter1&#39;)/p[1]/<wbr>range-to(following-sibling::p[<wbr>2]))<br>
-+xpointer(range-to(id(&#39;<wbr>chapter2&#39;)))<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) == &#39;(&#39;)) {<br>
--                  /* Note Type or Function */<br>
-+                  /* Node Type or Function */<br>
-                   if (xmlXPathIsNodeType(name)) {<br>
- #ifdef DEBUG_STEP<br>
-                       xmlGenericError(<wbr>xmlGenericErrorContext,<br>
-                               &quot;PathExpr: Type search\n&quot;);<br>
- #endif<br>
-                       lc = 1;<br>
-+#ifdef LIBXML_XPTR_ENABLED<br>
-+                    } else if (ctxt-&gt;xptr &amp;&amp;<br>
-+                               xmlStrEqual(name, BAD_CAST &quot;range-to&quot;)) {<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-&gt;here = here;<br>
-     ret-&gt;origin = origin;<br>
-<br>
--    xmlXPathRegisterFunc(ret, (xmlChar *)&quot;range-to&quot;,<br>
--                       xmlXPtrRangeToFunction);<br>
-     xmlXPathRegisterFunc(ret, (xmlChar *)&quot;range&quot;,<br>
-                        xmlXPtrRangeFunction);<br>
-     xmlXPathRegisterFunc(ret, (xmlChar *)&quot;range-inside&quot;,<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-&gt;nodesetval;<br>
--    ctxt-&gt;context-&gt;node = NULL;<br>
--<br>
--    cur = ctxt-&gt;cur;<br>
--    newset = xmlXPtrLocationSetCreate(NULL)<wbr>;<br>
--<br>
--    for (i = 0; i &lt; oldset-&gt;nodeNr; i++) {<br>
--      ctxt-&gt;cur = cur;<br>
--<br>
--      /*<br>
--       * Run the evaluation with a node list made of a single item<br>
--       * in the nodeset.<br>
--       */<br>
--      ctxt-&gt;context-&gt;node = oldset-&gt;nodeTab[i];<br>
--      tmp = xmlXPathNewNodeSet(ctxt-&gt;<wbr>context-&gt;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-&gt;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-&gt;value == tmp) {<br>
--          res = valuePop(ctxt);<br>
--          xmlXPathFreeObject(res);<br>
--      }<br>
--<br>
--      ctxt-&gt;context-&gt;node = NULL;<br>
--    }<br>
--<br>
--    /*<br>
--     * The result is used as the new evaluation set.<br>
--     */<br>
--    xmlXPathFreeObject(obj);<br>
--    ctxt-&gt;context-&gt;node = NULL;<br>
--    ctxt-&gt;context-&gt;contextSize = -1;<br>
--    ctxt-&gt;context-&gt;<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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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&#39;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-&gt;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-&gt;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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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-&gt;name);<br>
-           break;<br>
-       case XML_ELEMENT_CONTENT_SEQ:<br>
--          if ((content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
--              (content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_SEQ))<br>
-+          if ((content-&gt;c1 != NULL) &amp;&amp;<br>
-+              ((content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
-+               (content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_SEQ)))<br>
-               xmlDumpElementContent(buf, content-&gt;c1, 1);<br>
-           else<br>
-               xmlDumpElementContent(buf, content-&gt;c1, 0);<br>
-             xmlBufferWriteChar(buf, &quot; , &quot;);<br>
--          if ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
--              ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_SEQ) &amp;&amp;<br>
--               (content-&gt;c2-&gt;ocur != XML_ELEMENT_CONTENT_ONCE)))<br>
-+          if ((content-&gt;c2 != NULL) &amp;&amp;<br>
-+              ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
-+               ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_SEQ) &amp;&amp;<br>
-+                (content-&gt;c2-&gt;ocur != XML_ELEMENT_CONTENT_ONCE))))<br>
-               xmlDumpElementContent(buf, content-&gt;c2, 1);<br>
-           else<br>
-               xmlDumpElementContent(buf, content-&gt;c2, 0);<br>
-           break;<br>
-       case XML_ELEMENT_CONTENT_OR:<br>
--          if ((content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
--              (content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_SEQ))<br>
-+          if ((content-&gt;c1 != NULL) &amp;&amp;<br>
-+              ((content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
-+               (content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_SEQ)))<br>
-               xmlDumpElementContent(buf, content-&gt;c1, 1);<br>
-           else<br>
-               xmlDumpElementContent(buf, content-&gt;c1, 0);<br>
-             xmlBufferWriteChar(buf, &quot; | &quot;);<br>
--          if ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_SEQ) ||<br>
--              ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_OR) &amp;&amp;<br>
--               (content-&gt;c2-&gt;ocur != XML_ELEMENT_CONTENT_ONCE)))<br>
-+          if ((content-&gt;c2 != NULL) &amp;&amp;<br>
-+              ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_SEQ) ||<br>
-+               ((content-&gt;c2-&gt;type == XML_ELEMENT_CONTENT_OR) &amp;&amp;<br>
-+                (content-&gt;c2-&gt;ocur != XML_ELEMENT_CONTENT_ONCE))))<br>
-               xmlDumpElementContent(buf, content-&gt;c2, 1);<br>
-           else<br>
-               xmlDumpElementContent(buf, content-&gt;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 &lt;<a href="mailto:hongxu.jia@windriver.com">hongxu.jia@windriver.com</a>&gt;<br>
-Date: Wed, 23 Aug 2017 16:04:49 +0800<br>
-Subject: [PATCH] fix CVE-2017-8872<br>
-<br>
-this makes xmlHaltParser &quot;empty&quot; 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 &lt;<a href="mailto:meissner@suse.de">meissner@suse.de</a>&gt;<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&amp;action=diff" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>attachment.cgi?id=355527&amp;<wbr>action=diff</a>]<br>
-Signed-off-by: Hongxu Jia &lt;<a href="mailto:hongxu.jia@windriver.com">hongxu.jia@windriver.com</a>&gt;<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-&gt;input-&gt;cur = BAD_CAST&quot;&quot;;<br>
-       ctxt-&gt;input-&gt;base = ctxt-&gt;input-&gt;cur;<br>
-+      if (ctxt-&gt;input-&gt;buf) {<br>
-+              xmlBufEmpty (ctxt-&gt;input-&gt;buf-&gt;buffer);<br>
-+      } else<br>
-+              ctxt-&gt;input-&gt;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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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>
-+&lt;?xml version=&quot;1.0&quot;?&gt;<br>
-+&lt;!DOCTYPE a [<br>
-+&lt;!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)&gt;<br>
-+]&gt;<br>
-+&lt;a/&gt;<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>
-+&lt;a/&gt;<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>
-+&lt;a/&gt;<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>
-+&lt;!DOCTYPE a [<br>
-+    &lt;!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)&gt;<br>
-+]&gt;<br>
-+&lt;a/&gt;<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, &quot;#PCDATA&quot;);<br>
-           break;<br>
--      case XML_ELEMENT_CONTENT_ELEMENT:<br>
-+      case XML_ELEMENT_CONTENT_ELEMENT: {<br>
-+            int qnameLen = xmlStrlen(content-&gt;name);<br>
-+<br>
-+          if (content-&gt;prefix != NULL)<br>
-+                qnameLen += xmlStrlen(content-&gt;prefix) + 1;<br>
-+          if (size - len &lt; qnameLen + 10) {<br>
-+              strcat(buf, &quot; ...&quot;);<br>
-+              return;<br>
-+          }<br>
-           if (content-&gt;prefix != NULL) {<br>
--              if (size - len &lt; xmlStrlen(content-&gt;prefix) + 10) {<br>
--                  strcat(buf, &quot; ...&quot;);<br>
--                  return;<br>
--              }<br>
-               strcat(buf, (char *) content-&gt;prefix);<br>
-               strcat(buf, &quot;:&quot;);<br>
-           }<br>
--          if (size - len &lt; xmlStrlen(content-&gt;name) + 10) {<br>
--              strcat(buf, &quot; ...&quot;);<br>
--              return;<br>
--          }<br>
-           if (content-&gt;name != NULL)<br>
-               strcat(buf, (char *) content-&gt;name);<br>
-           break;<br>
-+      }<br>
-       case XML_ELEMENT_CONTENT_SEQ:<br>
-           if ((content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_OR) ||<br>
-               (content-&gt;c1-&gt;type == XML_ELEMENT_CONTENT_SEQ))<br>
-@@ -1319,6 +1320,7 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int<br>
-               xmlSnprintfElementContent(buf, size, content-&gt;c2, 0);<br>
-           break;<br>
-     }<br>
-+    if (size - strlen(buf) &lt;= 2) return;<br>
-     if (englob)<br>
-         strcat(buf, &quot;)&quot;);<br>
-     switch (content-&gt;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>
-&quot;complex&quot; 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&#39;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&#39;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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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 &quot;$$log&quot; ] ; then echo $$name result ; echo $$log ; fi ; \<br>
-             rm result.$$name error.$$name ; \<br>
-         fi ; fi ; done)<br>
-+      @echo &quot;## Error cases regression tests (old 1.0)&quot;<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&gt; $(srcdir)/result/errors10/$$<wbr>name.err \<br>
-+               &gt; $(srcdir)/result/errors10/$$<wbr>name ; \<br>
-+            grep &quot;MORY ALLO&quot; .memdump  | grep -v &quot;MEMORY ALLOCATED : 0&quot;; \<br>
-+        else \<br>
-+            log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2&gt; error.$$name &gt; result.$$name ; \<br>
-+            grep &quot;MORY ALLO&quot; .memdump  | grep -v &quot;MEMORY ALLOCATED : 0&quot;; \<br>
-+            diff $(srcdir)/result/errors10/$$<wbr>name result.$$name ; \<br>
-+            diff $(srcdir)/result/errors10/$$<wbr>name.err error.$$name` ; \<br>
-+            if [ -n &quot;$$log&quot; ] ; then echo $$name result ; echo &quot;$$log&quot; ; fi ; \<br>
-+            rm result.$$name error.$$name ; \<br>
-+        fi ; fi ; done)<br>
-       @echo &quot;## Error cases stream regression tests&quot;<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-&gt;input-&gt;line++; ctxt-&gt;input-&gt;col = 1;                      \<br>
-     } else ctxt-&gt;input-&gt;col++;                                                \<br>
-     ctxt-&gt;input-&gt;cur += l;                            \<br>
--    if (*ctxt-&gt;input-&gt;cur == &#39;%&#39;) xmlParserHandlePEReference(<wbr>ctxt);   \<br>
-   } while (0)<br>
-<br>
- #define CUR_CHAR(l) xmlCurrentChar(ctxt, &amp;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-&gt;instate == XML_PARSER_EOF)<br>
--                    return(NULL);<br>
--              c = CUR_CHAR(l);<br>
--          }<br>
-       }<br>
-     }<br>
-     if ((len &gt; XML_MAX_NAME_LENGTH) &amp;&amp;<br>
-@@ -3420,6 +3412,16 @@ xmlParseNameComplex(<wbr>xmlParserCtxtPtr ctxt) {<br>
-         xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, &quot;Name&quot;);<br>
-         return(NULL);<br>
-     }<br>
-+    if (ctxt-&gt;input-&gt;cur - ctxt-&gt;input-&gt;base &lt; 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>
-+                    &quot;unexpected change of input buffer&quot;);<br>
-+        return (NULL);<br>
-+    }<br>
-     if ((*ctxt-&gt;input-&gt;cur == &#39;\n&#39;) &amp;&amp; (ctxt-&gt;input-&gt;cur[-1] == &#39;\r&#39;))<br>
-         return(xmlDictLookup(ctxt-&gt;<wbr>dict, ctxt-&gt;input-&gt;cur - (len + 1), len));<br>
-     return(xmlDictLookup(ctxt-&gt;<wbr>dict, ctxt-&gt;input-&gt;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>
-+&lt;:0000<br>
-+^<br>
-+Entity: line 1: parser error : DOCTYPE improperly terminated<br>
-+ %a;<br>
-+    ^<br>
-+Entity: line 1:<br>
-+&lt;:0000<br>
-+^<br>
-+namespace error : Failed to parse QName &#39;:0000&#39;<br>
-+ %a;<br>
-+    ^<br>
-+&lt;:0000<br>
-+      ^<br>
-+./test/errors10/781205.xml:<wbr>4: parser error : Couldn&#39;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: &#39;EMPTY&#39;, &#39;ANY&#39; or &#39;(&#39; 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, &#39;&lt;&#39; 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 &#39;;&#39;<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 &#39;;&#39;<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>
-     { &quot;Error cases regression tests&quot;,<br>
-       errParseTest, &quot;./test/errors/*.xml&quot;, &quot;result/errors/&quot;, &quot;&quot;, &quot;.err&quot;,<br>
-       0 },<br>
-+    { &quot;Error cases regression tests (old 1.0)&quot;,<br>
-+      errParseTest, &quot;./test/errors10/*.xml&quot;, &quot;result/errors10/&quot;, &quot;&quot;, &quot;.err&quot;,<br>
-+      XML_PARSE_OLD10 },<br>
- #ifdef LIBXML_READER_ENABLED<br>
-     { &quot;Error cases stream regression tests&quot;,<br>
-       streamParseTest, &quot;./test/errors/*.xml&quot;, &quot;result/errors/&quot;, NULL, &quot;.str&quot;,<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>
-+&lt;!DOCTYPE D [<br>
-+  &lt;!ENTITY % a &quot;&lt;:0000&quot;&gt;<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>
-+&lt;!DOCTYPE doc [<br>
-+  &lt;!ENTITY % elem &quot;&lt;!ELEMENT e0000000000&quot;&gt;<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>
-+&lt;!DOCTYPE test SYSTEM &quot;dtds/766956.dtd&quot;&gt;<br>
-+&lt;test/&gt;<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>
-+&lt;!ENTITY % ent &quot;value&quot;&gt;<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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<br>
-Signed-off-by: Pascal Bach &lt;<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>&gt;<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-&gt;nodesetval-&gt;nodeNr &lt;= 0)<br>
-+          if ((end-&gt;nodesetval == NULL) || (end-&gt;nodesetval-&gt;nodeNr &lt;= 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-&gt;nodesetval;<br>
--                  if ((set-&gt;nodeNr != 1) ||<br>
-+                  if ((set == NULL) || (set-&gt;nodeNr != 1) ||<br>
-                       (set-&gt;nodeTab[0] != (xmlNodePtr) ctx-&gt;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 &lt; oldset-&gt;locNr;i++) {<br>
--      xmlXPtrLocationSetAdd(newset,<br>
--              xmlXPtrCoveringRange(ctxt, oldset-&gt;locTab[i]));<br>
-+    if (oldset != NULL) {<br>
-+      for (i = 0;i &lt; oldset-&gt;locNr;i++) {<br>
-+        xmlXPtrLocationSetAdd(newset,<br>
-+                xmlXPtrCoveringRange(ctxt, oldset-&gt;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 &quot;base&quot; 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 &quot;runtest mystery bug: name2.xml<br>
-error case regression test&quot; 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 &quot;recover&quot; mode.<br>
-<br>
-Now we store the current input buffer &quot;base&quot; pointer for each (not<br>
-separately allocated) attribute in the namespace URI field, which isn&#39;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 &quot;base&quot; 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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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 &lt;limits.h&gt;<br>
- #include &lt;string.h&gt;<br>
- #include &lt;stdarg.h&gt;<br>
-+#include &lt;stddef.h&gt;<br>
- #include &lt;libxml/xmlmemory.h&gt;<br>
- #include &lt;libxml/threads.h&gt;<br>
- #include &lt;libxml/globals.h&gt;<br>
-@@ -9377,8 +9378,7 @@ xmlParseStartTag2(<wbr>xmlParserCtxtPtr ctxt, const xmlChar **pref,<br>
-     const xmlChar **atts = ctxt-&gt;atts;<br>
-     int maxatts = ctxt-&gt;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-&gt;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-&gt;input-&gt;base;<br>
-     cur = ctxt-&gt;input-&gt;cur - ctxt-&gt;input-&gt;base;<br>
--    inputNr = ctxt-&gt;inputNr;<br>
--    oldline = ctxt-&gt;input-&gt;line;<br>
--    oldcol = ctxt-&gt;input-&gt;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-&gt;input-&gt;base != base) || (inputNr != ctxt-&gt;inputNr))<br>
--        goto base_changed;<br>
-<br>
-     while (((RAW != &#39;&gt;&#39;) &amp;&amp;<br>
-          ((RAW != &#39;/&#39;) || (NXT(1) != &#39;&gt;&#39;)) &amp;&amp;<br>
-@@ -9434,203 +9427,174 @@ reparse:<br>
-<br>
-       attname = xmlParseAttribute2(ctxt, prefix, localname,<br>
-                                    &amp;aprefix, &amp;attvalue, &amp;len, &amp;alloc);<br>
--      if ((ctxt-&gt;input-&gt;base != base) || (inputNr != ctxt-&gt;inputNr)) {<br>
--          if ((attvalue != NULL) &amp;&amp; (alloc != 0))<br>
--              xmlFree(attvalue);<br>
--          attvalue = NULL;<br>
--          goto base_changed;<br>
--      }<br>
--        if ((attname != NULL) &amp;&amp; (attvalue != NULL)) {<br>
--          if (len &lt; 0) len = xmlStrlen(attvalue);<br>
--            if ((attname == ctxt-&gt;str_xmlns) &amp;&amp; (aprefix == NULL)) {<br>
--              const xmlChar *URL = xmlDictLookup(ctxt-&gt;dict, attvalue, len);<br>
--              xmlURIPtr uri;<br>
--<br>
--                if (URL == NULL) {<br>
--                  xmlErrMemory(ctxt, &quot;dictionary allocation failure&quot;);<br>
--                  if ((attvalue != NULL) &amp;&amp; (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>
--                               &quot;xmlns: &#39;%s&#39; is not a valid URI\n&quot;,<br>
--                                         URL, NULL, NULL);<br>
--                  } else {<br>
--                      if (uri-&gt;scheme == NULL) {<br>
--                          xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
--                                    &quot;xmlns: URI %s is not absolute\n&quot;,<br>
--                                    URL, NULL, NULL);<br>
--                      }<br>
--                      xmlFreeURI(uri);<br>
--                  }<br>
--                  if (URL == ctxt-&gt;str_xml_ns) {<br>
--                      if (attname != ctxt-&gt;str_xml) {<br>
--                          xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
--                       &quot;xml namespace URI cannot be the default namespace\n&quot;,<br>
--                                   NULL, NULL, NULL);<br>
--                      }<br>
--                      goto skip_default_ns;<br>
--                  }<br>
--                  if ((len == 29) &amp;&amp;<br>
--                      (xmlStrEqual(URL,<br>
--                               BAD_CAST &quot;<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>&quot;))) {<br>
--                      xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
--                           &quot;reuse of the xmlns namespace name is forbidden\n&quot;,<br>
--                               NULL, NULL, NULL);<br>
--                      goto skip_default_ns;<br>
--                  }<br>
--              }<br>
--              /*<br>
--               * check that it&#39;s not a defined namespace<br>
--               */<br>
--              for (j = 1;j &lt;= nbNs;j++)<br>
--                  if (ctxt-&gt;nsTab[ctxt-&gt;nsNr - 2 * j] == NULL)<br>
--                      break;<br>
--              if (j &lt;= nbNs)<br>
--                  xmlErrAttributeDup(ctxt, NULL, attname);<br>
--              else<br>
--                  if (nsPush(ctxt, NULL, URL) &gt; 0) nbNs++;<br>
--skip_default_ns:<br>
--              if ((attvalue != NULL) &amp;&amp; (alloc != 0)) {<br>
--                  xmlFree(attvalue);<br>
--                  attvalue = NULL;<br>
--              }<br>
--              if ((RAW == &#39;&gt;&#39;) || (((RAW == &#39;/&#39;) &amp;&amp; (NXT(1) == &#39;&gt;&#39;))))<br>
--                  break;<br>
--              if (!IS_BLANK_CH(RAW)) {<br>
--                  xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,<br>
--                                 &quot;attributes construct error\n&quot;);<br>
--                  break;<br>
--              }<br>
--              SKIP_BLANKS;<br>
--              if ((ctxt-&gt;input-&gt;base != base) || (inputNr != ctxt-&gt;inputNr))<br>
--                  goto base_changed;<br>
--              continue;<br>
--          }<br>
--            if (aprefix == ctxt-&gt;str_xmlns) {<br>
--              const xmlChar *URL = xmlDictLookup(ctxt-&gt;dict, attvalue, len);<br>
--              xmlURIPtr uri;<br>
--<br>
--                if (attname == ctxt-&gt;str_xml) {<br>
--                  if (URL != ctxt-&gt;str_xml_ns) {<br>
--                      xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
--                               &quot;xml namespace prefix mapped to wrong URI\n&quot;,<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 &lt; 0) len = xmlStrlen(attvalue);<br>
-+<br>
-+        if ((attname == ctxt-&gt;str_xmlns) &amp;&amp; (aprefix == NULL)) {<br>
-+            const xmlChar *URL = xmlDictLookup(ctxt-&gt;dict, attvalue, len);<br>
-+            xmlURIPtr uri;<br>
-+<br>
-+            if (URL == NULL) {<br>
-+                xmlErrMemory(ctxt, &quot;dictionary allocation failure&quot;);<br>
-+                if ((attvalue != NULL) &amp;&amp; (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>
-+                             &quot;xmlns: &#39;%s&#39; is not a valid URI\n&quot;,<br>
-+                                       URL, NULL, NULL);<br>
-+                } else {<br>
-+                    if (uri-&gt;scheme == NULL) {<br>
-+                        xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
-+                                  &quot;xmlns: URI %s is not absolute\n&quot;,<br>
-+                                  URL, NULL, NULL);<br>
-+                    }<br>
-+                    xmlFreeURI(uri);<br>
-+                }<br>
-                 if (URL == ctxt-&gt;str_xml_ns) {<br>
--                  if (attname != ctxt-&gt;str_xml) {<br>
--                      xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
--                               &quot;xml namespace URI mapped to wrong prefix\n&quot;,<br>
--                               NULL, NULL, NULL);<br>
--                  }<br>
--                  goto skip_ns;<br>
--              }<br>
--                if (attname == ctxt-&gt;str_xmlns) {<br>
--                  xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
--                           &quot;redefinition of the xmlns prefix is forbidden\n&quot;,<br>
--                           NULL, NULL, NULL);<br>
--                  goto skip_ns;<br>
--              }<br>
--              if ((len == 29) &amp;&amp;<br>
--                  (xmlStrEqual(URL,<br>
--                               BAD_CAST &quot;<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>&quot;))) {<br>
--                  xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
--                           &quot;reuse of the xmlns namespace name is forbidden\n&quot;,<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>
--                           &quot;xmlns:%s: Empty XML namespace is not allowed\n&quot;,<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>
--                           &quot;xmlns:%s: &#39;%s&#39; is not a valid URI\n&quot;,<br>
--                                         attname, URL, NULL);<br>
--                  } else {<br>
--                      if ((ctxt-&gt;pedantic) &amp;&amp; (uri-&gt;scheme == NULL)) {<br>
--                          xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
--                                    &quot;xmlns:%s: URI %s is not absolute\n&quot;,<br>
--                                    attname, URL, NULL);<br>
--                      }<br>
--                      xmlFreeURI(uri);<br>
--                  }<br>
--              }<br>
--<br>
--              /*<br>
--               * check that it&#39;s not a defined namespace<br>
--               */<br>
--              for (j = 1;j &lt;= nbNs;j++)<br>
--                  if (ctxt-&gt;nsTab[ctxt-&gt;nsNr - 2 * j] == attname)<br>
--                      break;<br>
--              if (j &lt;= nbNs)<br>
--                  xmlErrAttributeDup(ctxt, aprefix, attname);<br>
--              else<br>
--                  if (nsPush(ctxt, attname, URL) &gt; 0) nbNs++;<br>
--skip_ns:<br>
--              if ((attvalue != NULL) &amp;&amp; (alloc != 0)) {<br>
--                  xmlFree(attvalue);<br>
--                  attvalue = NULL;<br>
--              }<br>
--              if ((RAW == &#39;&gt;&#39;) || (((RAW == &#39;/&#39;) &amp;&amp; (NXT(1) == &#39;&gt;&#39;))))<br>
--                  break;<br>
--              if (!IS_BLANK_CH(RAW)) {<br>
--                  xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,<br>
--                                 &quot;attributes construct error\n&quot;);<br>
--                  break;<br>
--              }<br>
--              SKIP_BLANKS;<br>
--              if ((ctxt-&gt;input-&gt;base != base) || (inputNr != ctxt-&gt;inputNr))<br>
--                  goto base_changed;<br>
--              continue;<br>
--          }<br>
-+                    if (attname != ctxt-&gt;str_xml) {<br>
-+                        xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+                     &quot;xml namespace URI cannot be the default namespace\n&quot;,<br>
-+                                 NULL, NULL, NULL);<br>
-+                    }<br>
-+                    goto next_attr;<br>
-+                }<br>
-+                if ((len == 29) &amp;&amp;<br>
-+                    (xmlStrEqual(URL,<br>
-+                             BAD_CAST &quot;<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>&quot;))) {<br>
-+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+                         &quot;reuse of the xmlns namespace name is forbidden\n&quot;,<br>
-+                             NULL, NULL, NULL);<br>
-+                    goto next_attr;<br>
-+                }<br>
-+            }<br>
-+            /*<br>
-+             * check that it&#39;s not a defined namespace<br>
-+             */<br>
-+            for (j = 1;j &lt;= nbNs;j++)<br>
-+                if (ctxt-&gt;nsTab[ctxt-&gt;nsNr - 2 * j] == NULL)<br>
-+                    break;<br>
-+            if (j &lt;= nbNs)<br>
-+                xmlErrAttributeDup(ctxt, NULL, attname);<br>
-+            else<br>
-+                if (nsPush(ctxt, NULL, URL) &gt; 0) nbNs++;<br>
-+<br>
-+        } else if (aprefix == ctxt-&gt;str_xmlns) {<br>
-+            const xmlChar *URL = xmlDictLookup(ctxt-&gt;dict, attvalue, len);<br>
-+            xmlURIPtr uri;<br>
-+<br>
-+            if (attname == ctxt-&gt;str_xml) {<br>
-+                if (URL != ctxt-&gt;str_xml_ns) {<br>
-+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+                             &quot;xml namespace prefix mapped to wrong URI\n&quot;,<br>
-+                             NULL, NULL, NULL);<br>
-+                }<br>
-+                /*<br>
-+                 * Do not keep a namespace definition node<br>
-+                 */<br>
-+                goto next_attr;<br>
-+            }<br>
-+            if (URL == ctxt-&gt;str_xml_ns) {<br>
-+                if (attname != ctxt-&gt;str_xml) {<br>
-+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+                             &quot;xml namespace URI mapped to wrong prefix\n&quot;,<br>
-+                             NULL, NULL, NULL);<br>
-+                }<br>
-+                goto next_attr;<br>
-+            }<br>
-+            if (attname == ctxt-&gt;str_xmlns) {<br>
-+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+                         &quot;redefinition of the xmlns prefix is forbidden\n&quot;,<br>
-+                         NULL, NULL, NULL);<br>
-+                goto next_attr;<br>
-+            }<br>
-+            if ((len == 29) &amp;&amp;<br>
-+                (xmlStrEqual(URL,<br>
-+                             BAD_CAST &quot;<a href="http://www.w3.org/2000/xmlns/" rel="noreferrer" target="_blank">http://www.w3.org/2000/xmlns/</a><wbr>&quot;))) {<br>
-+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,<br>
-+                         &quot;reuse of the xmlns namespace name is forbidden\n&quot;,<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>
-+                         &quot;xmlns:%s: Empty XML namespace is not allowed\n&quot;,<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>
-+                         &quot;xmlns:%s: &#39;%s&#39; is not a valid URI\n&quot;,<br>
-+                                       attname, URL, NULL);<br>
-+                } else {<br>
-+                    if ((ctxt-&gt;pedantic) &amp;&amp; (uri-&gt;scheme == NULL)) {<br>
-+                        xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,<br>
-+                                  &quot;xmlns:%s: URI %s is not absolute\n&quot;,<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 &gt; maxatts)) {<br>
--              if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) &lt; 0) {<br>
--                  if (attvalue[len] == 0)<br>
--                      xmlFree(attvalue);<br>
--                  goto failed;<br>
--              }<br>
--              maxatts = ctxt-&gt;maxatts;<br>
--              atts = ctxt-&gt;atts;<br>
--          }<br>
--          ctxt-&gt;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) &amp;&amp; (attvalue[len] == 0))<br>
--              xmlFree(attvalue);<br>
--      }<br>
-+            /*<br>
-+             * check that it&#39;s not a defined namespace<br>
-+             */<br>
-+            for (j = 1;j &lt;= nbNs;j++)<br>
-+                if (ctxt-&gt;nsTab[ctxt-&gt;nsNr - 2 * j] == attname)<br>
-+                    break;<br>
-+            if (j &lt;= nbNs)<br>
-+                xmlErrAttributeDup(ctxt, aprefix, attname);<br>
-+            else<br>
-+                if (nsPush(ctxt, attname, URL) &gt; 0) nbNs++;<br>
-+<br>
-+        } else {<br>
-+            /*<br>
-+             * Add the pair to atts<br>
-+             */<br>
-+            if ((atts == NULL) || (nbatts + 5 &gt; maxatts)) {<br>
-+                if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) &lt; 0) {<br>
-+                    goto next_attr;<br>
-+                }<br>
-+                maxatts = ctxt-&gt;maxatts;<br>
-+                atts = ctxt-&gt;atts;<br>
-+            }<br>
-+            ctxt-&gt;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-&gt;input-&gt;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) &amp;&amp; (alloc != 0)) {<br>
-+            xmlFree(attvalue);<br>
-+            attvalue = NULL;<br>
-+        }<br>
-<br>
-       GROW<br>
-         if (ctxt-&gt;instate == XML_PARSER_EOF)<br>
-             break;<br>
--      if ((ctxt-&gt;input-&gt;base != base) || (inputNr != ctxt-&gt;inputNr))<br>
--          goto base_changed;<br>
-       if ((RAW == &#39;&gt;&#39;) || (((RAW == &#39;/&#39;) &amp;&amp; (NXT(1) == &#39;&gt;&#39;))))<br>
-           break;<br>
-       if (!IS_BLANK_CH(RAW)) {<br>
-@@ -9646,8 +9610,20 @@ failed:<br>
-           break;<br>
-       }<br>
-         GROW;<br>
--      if ((ctxt-&gt;input-&gt;base != base) || (inputNr != ctxt-&gt;inputNr))<br>
--          goto base_changed;<br>
-+    }<br>
-+<br>
-+    /* Reconstruct attribute value pointers. */<br>
-+    for (i = 0, j = 0; j &lt; 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-&gt;input-&gt;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&#39;t changed<br>
--     */<br>
--    if (attval != 0) {<br>
--      for (i = 3,j = 0; j &lt; nratts;i += 5,j++)<br>
--          if ((ctxt-&gt;attallocs[j] != 0) &amp;&amp; (atts[i] != NULL))<br>
--              xmlFree((xmlChar *) atts[i]);<br>
--    }<br>
--<br>
--    /*<br>
--     * We can&#39;t switch from one entity to another in the middle<br>
--     * of a start tag<br>
--     */<br>
--    if (inputNr != ctxt-&gt;inputNr) {<br>
--        xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,<br>
--                  &quot;Start tag doesn&#39;t start and stop in the same entity\n&quot;);<br>
--      return(NULL);<br>
--    }<br>
--<br>
--    ctxt-&gt;input-&gt;cur = ctxt-&gt;input-&gt;base + cur;<br>
--    ctxt-&gt;input-&gt;line = oldline;<br>
--    ctxt-&gt;input-&gt;col = oldcol;<br>
--    if (ctxt-&gt;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&lt;! don&#39;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.&lt;/termdef&gt; &lt;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.&lt;/termdef&gt; &lt;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.&lt;/p&gt;<br>
-+                                                                ^<br>
-+./test/errors/759398.xml:<wbr>316: parser error : Extra content at the end of the document<br>
-+&lt;div2 id=&#39;sec-origin-goals&#39;&gt;<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: &#39; expected<br>
-<br>
- ^<br>
--./test/errors/attr1.xml:1: parser error : Extra content at the end of the document<br>
--&lt;foo foo=&quot;<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&#39;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: &#39; expected<br>
-<br>
- ^<br>
--./test/errors/attr2.xml:1: parser error : Extra content at the end of the document<br>
--&lt;foo foo=&quot;&gt;<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&#39;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>
--&lt;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&#39;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 &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<br>
-Signed-off-by: Pascal Bach &lt;<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>&gt;<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(&#39;chapter2&#39;)))<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(&#39;chapter2&#39;)))<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-&gt;parent != NULL;cur = cur-&gt;parent) {<br>
--      if (cur == node1)<br>
-+      if (cur-&gt;parent == node1)<br>
-           return(1);<br>
-       depth2++;<br>
-     }<br>
-     root = cur;<br>
-     for (depth1 = 0, cur = node1;cur-&gt;parent != NULL;cur = cur-&gt;parent) {<br>
--      if (cur == node2)<br>
-+      if (cur-&gt;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-&gt;ch1 != -1)<br>
-+                if (op-&gt;ch1 != -1) {<br>
-                     total +=<br>
-                         xmlXPathCompOpEval(ctxt, &amp;comp-&gt;steps[op-&gt;ch1]);<br>
-+                    CHECK_ERROR0;<br>
-+                }<br>
-+                if (ctxt-&gt;value == NULL) {<br>
-+                    XP_ERROR0(XPATH_INVALID_<wbr>OPERAND);<br>
-+                }<br>
-                 if (op-&gt;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 &#39;install-ptest&#39; rule.<br>
<span class=""> Print a standard result line for each test.<br>
<br>
 Signed-off-by: Mihaela Sendrea &lt;<a href="mailto:mihaela.sendrea@enea.com">mihaela.sendrea@enea.com</a>&gt;<br>
-Signed-off-by: Andrej Valek &lt;<a href="mailto:andrej.valek@enea.com">andrej.valek@enea.com</a>&gt;<br>
+Signed-off-by: Andrej Valek &lt;<a href="mailto:andrej.valek@siemens.com">andrej.valek@siemens.com</a>&gt;<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 &#39;s|^Makefile:|_Makefile:|&#39; $(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) &amp;&amp; $(CHECKER) ./testrecurse$(EXEEXT) &amp;&amp;$(CHECKER) ./testapi$(EXEEXT) &amp;&amp; $(CHECKER) ./testchar$(EXEEXT)&amp;&amp; $(CHECKER) ./testdict$(EXEEXT) &amp;&amp; $(CHECKER) ./runxmlconf$(EXEEXT)<br>
-+      $(CHECKER) ./runtest$(EXEEXT) &amp;&amp; \<br>
-+          $(CHECKER) ./testrecurse$(EXEEXT) &amp;&amp; \<br>
-+          ASAN_OPTIONS=&quot;$$ASAN_OPTIONS:<wbr>detect_leaks=0&quot; $(CHECKER) ./testapi$(EXEEXT) &amp;&amp; \<br>
-+          $(CHECKER) ./testchar$(EXEEXT) &amp;&amp; \<br>
-+          $(CHECKER) ./testdict$(EXEEXT) &amp;&amp; \<br>
-+          $(CHECKER) ./runxmlconf$(EXEEXT)<br>
-       @(if [ &quot;$(PYTHON_SUBDIR)&quot; != &quot;&quot; ] ; then cd python ; \<br>
-           $(MAKE) tests ; fi)<br>
-<br>
-@@ -229,7 +243,7 @@<br>
-<br>
- APItests: testapi$(EXEEXT)<br>
-       @echo &quot;## Running the API regression tests this may take a little while&quot;<br>
--      -@($(CHECKER) $(top_builddir)/testapi -q)<br>
-+      -@(ASAN_OPTIONS=&quot;$$ASAN_<wbr>OPTIONS:detect_leaks=0&quot; $(CHECKER) $(top_builddir)/testapi -q)<br>
-<br>
- HTMLtests : testHTML$(EXEEXT)<br>
-       @(echo &gt; .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 = &quot;<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>
            &quot;<br>
<br>
-SRC_URI[libtar.md5sum] = &quot;<wbr>ae249165c173b1ff386ee8ad676815<wbr>f5&quot;<br>
-SRC_URI[libtar.sha256sum] = &quot;<wbr>ffb911191e509b966deb55de705387<wbr>f14156e1a56b21824357cdf0053233<wbr>633c&quot;<br>
+SRC_URI[libtar.md5sum] = &quot;<wbr>5ce0da9bdaa267b40c4ca36d35363b<wbr>8b&quot;<br>
+SRC_URI[libtar.sha256sum] = &quot;<wbr>4031c1ecee9ce7ba4f313e91ef6284<wbr>164885cdb69937a123f6a83bb6a72d<wbr>cd38&quot;<br>
 SRC_URI[testtar.md5sum] = &quot;<wbr>ae3d1ebe000a3972afa104ca7f0e1b<wbr>4a&quot;<br>
 SRC_URI[testtar.sha256sum] = &quot;<wbr>96151685cec997e1f9f3387e3626d6<wbr>1e6284d4d6e66e0e440c209286c03e<wbr>9cc7&quot;<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>