Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=gnometesting.git;a=commitdiff;h=d1f2a2a9dfb0e0b5e9cc3ed2c7e14d06feb259ad

commit d1f2a2a9dfb0e0b5e9cc3ed2c7e14d06feb259ad
Author: Baste <[email protected]>
Date:   Mon Sep 21 22:27:28 2015 +0200

libxml2-2.9.2-1-x86_64
- 2.8.0 -> 2.9.2
- Remove patch

diff --git a/source/base/libxml2/CVE-2012-5134.patch 
b/source/base/libxml2/CVE-2012-5134.patch
deleted file mode 100644
index 3ac7f49..0000000
--- a/source/base/libxml2/CVE-2012-5134.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 6a36fbe3b3e001a8a840b5c1fdd81cefc9947f0d Mon Sep 17 00:00:00 2001
-From: Daniel Veillard <[email protected]>
-Date: Mon, 29 Oct 2012 02:39:55 +0000
-Subject: Fix potential out of bound access
-
-http://git.gnome.org/browse/libxml2/patch/?id=6a36fbe3b3e001a8a840b5c1fdd81cefc9947f0d
-http://git.gnome.org/browse/libxml2/commit/?id=6a36fbe3b3e001a8a840b5c1fdd81cefc9947f0d
-
----
-Index: libxml2-2.8.0+dfsg1/parser.c
-===================================================================
---- libxml2-2.8.0+dfsg1.orig/parser.c  2012-12-04 09:40:39.000000000 -0800
-+++ libxml2-2.8.0+dfsg1/parser.c       2012-12-04 10:59:28.000000000 -0800
-@@ -3932,7 +3932,7 @@
-       c = CUR_CHAR(l);
-     }
-     if ((in_space) && (normalize)) {
--        while (buf[len - 1] == 0x20) len--;
-+        while ((len > 0) && (buf[len - 1] == 0x20)) len--;
-     }
-     buf[len] = 0;
-     if (RAW == '<') {
diff --git a/source/base/libxml2/CVE-2013-0339.patch 
b/source/base/libxml2/CVE-2013-0339.patch
deleted file mode 100644
index 769da50..0000000
--- a/source/base/libxml2/CVE-2013-0339.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 23f05e0c33987d6605387b300c4be5da2120a7ab Mon Sep 17 00:00:00 2001
-From: Daniel Veillard <[email protected]>
-Date: Tue, 19 Feb 2013 02:21:49 +0000
-Subject: Detect excessive entities expansion upon replacement
-
-If entities expansion in the XML parser is asked for,
-it is possble to craft relatively small input document leading
-to excessive on-the-fly content generation.
-This patch accounts for those replacement and stop parsing
-after a given threshold. it can be bypassed as usual with the
-HUGE parser option.
----
-Index: libxml2-2.8.0+dfsg1/include/libxml/parser.h
-===================================================================
---- libxml2-2.8.0+dfsg1.orig/include/libxml/parser.h   2013-03-06 
15:25:52.856052514 -0500
-+++ libxml2-2.8.0+dfsg1/include/libxml/parser.h        2013-03-06 
15:25:52.840052514 -0500
-@@ -310,6 +310,7 @@
-     xmlParserNodeInfo *nodeInfoTab;   /* array of nodeInfos */
-
-     int                input_id;      /* we need to label inputs */
-+    unsigned long      sizeentcopy;   /* volume of entity copy */
- };
-
- /**
-Index: libxml2-2.8.0+dfsg1/parser.c
-===================================================================
---- libxml2-2.8.0+dfsg1.orig/parser.c  2013-03-06 15:25:52.856052514 -0500
-+++ libxml2-2.8.0+dfsg1/parser.c       2013-03-06 15:25:52.848052514 -0500
-@@ -119,7 +119,7 @@
-  */
- static int
- xmlParserEntityCheck(xmlParserCtxtPtr ctxt, unsigned long size,
--                     xmlEntityPtr ent)
-+                     xmlEntityPtr ent, unsigned long replacement)
- {
-     unsigned long consumed = 0;
-
-@@ -127,7 +127,24 @@
-         return (0);
-     if (ctxt->lastError.code == XML_ERR_ENTITY_LOOP)
-         return (1);
--    if (size != 0) {
-+    if (replacement != 0) {
-+      if (replacement < XML_MAX_TEXT_LENGTH)
-+          return(0);
-+
-+        /*
-+       * If the volume of entity copy reaches 10 times the
-+       * amount of parsed data and over the large text threshold
-+       * then that's very likely to be an abuse.
-+       */
-+        if (ctxt->input != NULL) {
-+          consumed = ctxt->input->consumed +
-+                     (ctxt->input->cur - ctxt->input->base);
-+      }
-+        consumed += ctxt->sizeentities;
-+
-+        if (replacement < XML_PARSER_NON_LINEAR * consumed)
-+          return(0);
-+    } else if (size != 0) {
-         /*
-          * Do the check based on the replacement size of the entity
-          */
-@@ -173,7 +190,6 @@
-          */
-         return (0);
-     }
--
-     xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
-     return (1);
- }
-@@ -2706,7 +2722,7 @@
-                       buffer[nbchars++] = *current++;
-                       if (nbchars >
-                           buffer_size - XML_PARSER_BUFFER_SIZE) {
--                          if (xmlParserEntityCheck(ctxt, nbchars, ent))
-+                          if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
-                               goto int_error;
-                           growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
-                       }
-@@ -2748,7 +2764,7 @@
-                       buffer[nbchars++] = *current++;
-                       if (nbchars >
-                           buffer_size - XML_PARSER_BUFFER_SIZE) {
--                          if (xmlParserEntityCheck(ctxt, nbchars, ent))
-+                          if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
-                               goto int_error;
-                           growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
-                       }
-@@ -6976,7 +6992,7 @@
-           xmlFreeNodeList(list);
-           return;
-       }
--      if (xmlParserEntityCheck(ctxt, 0, ent)) {
-+      if (xmlParserEntityCheck(ctxt, 0, ent, 0)) {
-           xmlFreeNodeList(list);
-           return;
-       }
-@@ -7136,6 +7152,13 @@
-               xmlNodePtr nw = NULL, cur, firstChild = NULL;
-
-               /*
-+               * We are copying here, make sure there is no abuse
-+               */
-+              ctxt->sizeentcopy += ent->length;
-+              if (xmlParserEntityCheck(ctxt, 0, ent, ctxt->sizeentcopy))
-+                  return;
-+
-+              /*
-                * when operating on a reader, the entities definitions
-                * are always owning the entities subtree.
-               if (ctxt->parseMode == XML_PARSE_READER)
-@@ -7175,6 +7198,14 @@
-           } else if (list == NULL) {
-               xmlNodePtr nw = NULL, cur, next, last,
-                          firstChild = NULL;
-+
-+              /*
-+               * We are copying here, make sure there is no abuse
-+               */
-+              ctxt->sizeentcopy += ent->length;
-+              if (xmlParserEntityCheck(ctxt, 0, ent, ctxt->sizeentcopy))
-+                  return;
-+
-               /*
-                * Copy the entity child list and make it the new
-                * entity child list. The goal is to make sure any
-@@ -14355,6 +14386,7 @@
-     ctxt->catalogs = NULL;
-     ctxt->nbentities = 0;
-     ctxt->sizeentities = 0;
-+    ctxt->sizeentcopy = 0;
-     xmlInitNodeInfoSeq(&ctxt->node_seq);
-
-     if (ctxt->attsDefault != NULL) {
-Index: libxml2-2.8.0+dfsg1/parserInternals.c
-===================================================================
---- libxml2-2.8.0+dfsg1.orig/parserInternals.c 2013-03-06 15:25:52.856052514 
-0500
-+++ libxml2-2.8.0+dfsg1/parserInternals.c      2013-03-06 15:25:52.848052514 
-0500
-@@ -1761,6 +1761,8 @@
-     ctxt->charset = XML_CHAR_ENCODING_UTF8;
-     ctxt->catalogs = NULL;
-     ctxt->nbentities = 0;
-+    ctxt->sizeentities = 0;
-+    ctxt->sizeentcopy = 0;
-     ctxt->input_id = 1;
-     xmlInitNodeInfoSeq(&ctxt->node_seq);
-     return(0);
diff --git a/source/base/libxml2/CVE-2013-2877.patch 
b/source/base/libxml2/CVE-2013-2877.patch
deleted file mode 100644
index e5c57a9..0000000
--- a/source/base/libxml2/CVE-2013-2877.patch
+++ /dev/null
@@ -1,754 +0,0 @@
-Description: fix denial of service via incomplete document
-Origin: backport, 
https://git.gnome.org/browse/libxml2/commit/?id=48b4cdde3483e054af8ea02e0cd7ee467b0e9a50
-Origin: backport, 
https://git.gnome.org/browse/libxml2/commit/?id=e50ba8164eee06461c73cd8abb9b46aa0be81869
-Origin: backport, 
https://git.gnome.org/browse/libxml2/commit/?id=9ca816b3a64e7b1bada7baa2cbc09e8937b38215
-
-Index: libxml2-2.8.0+dfsg1/include/libxml/xmlerror.h
-===================================================================
---- libxml2-2.8.0+dfsg1.orig/include/libxml/xmlerror.h 2009-07-30 
11:24:34.000000000 -0400
-+++ libxml2-2.8.0+dfsg1/include/libxml/xmlerror.h      2013-07-16 
13:37:43.000000000 -0400
-@@ -205,6 +205,7 @@
-     XML_WAR_ENTITY_REDEFINED, /* 107 */
-     XML_ERR_UNKNOWN_VERSION, /* 108 */
-     XML_ERR_VERSION_MISMATCH, /* 109 */
-+    XML_ERR_USER_STOP, /* 111 */
-     XML_NS_ERR_XML_NAMESPACE = 200,
-     XML_NS_ERR_UNDEFINED_NAMESPACE, /* 201 */
-     XML_NS_ERR_QNAME, /* 202 */
-Index: libxml2-2.8.0+dfsg1/parser.c
-===================================================================
---- libxml2-2.8.0+dfsg1.orig/parser.c  2013-07-16 13:37:43.000000000 -0400
-+++ libxml2-2.8.0+dfsg1/parser.c       2013-07-16 13:53:38.892991209 -0400
-@@ -2161,6 +2161,8 @@
-               "Pushing input %d : %.30s\n", ctxt->inputNr+1, input->cur);
-     }
-     ret = inputPush(ctxt, input);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(-1);
-     GROW;
-     return(ret);
- }
-@@ -2197,6 +2199,8 @@
-           if (count++ > 20) {
-               count = 0;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(0);
-           }
-           if ((RAW >= '0') && (RAW <= '9'))
-               val = val * 16 + (CUR - '0');
-@@ -2228,6 +2232,8 @@
-           if (count++ > 20) {
-               count = 0;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(0);
-           }
-           if ((RAW >= '0') && (RAW <= '9'))
-               val = val * 10 + (CUR - '0');
-@@ -2514,6 +2520,8 @@
-           NEXT;
-           if ((ctxt->sax != NULL) && (ctxt->sax->getParameterEntity != NULL))
-               entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
-+          if (ctxt->instate == XML_PARSER_EOF)
-+              return;
-           if (entity == NULL) {
-
-               /*
-@@ -2576,6 +2584,8 @@
-                    * the amount of data in the buffer.
-                    */
-                   GROW
-+                    if (ctxt->instate == XML_PARSER_EOF)
-+                        return;
-                   if ((ctxt->input->end - ctxt->input->cur)>=4) {
-                       start[0] = RAW;
-                       start[1] = NXT(1);
-@@ -3194,6 +3204,8 @@
-      * Handler for more complex cases
-      */
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(NULL);
-     c = CUR_CHAR(l);
-     if ((ctxt->options & XML_PARSE_OLD10) == 0) {
-         /*
-@@ -3245,6 +3257,8 @@
-           if (count++ > 100) {
-               count = 0;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(NULL);
-           }
-           len += l;
-           NEXTL(l);
-@@ -3269,6 +3283,8 @@
-           if (count++ > 100) {
-               count = 0;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(NULL);
-           }
-           len += l;
-           NEXTL(l);
-@@ -3362,6 +3378,8 @@
-       if (count++ > 100) {
-           count = 0;
-           GROW;
-+            if (ctxt->instate == XML_PARSER_EOF)
-+                return(NULL);
-       }
-       len += l;
-       NEXTL(l);
-@@ -3442,6 +3460,8 @@
-     const xmlChar *ret;
-
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(NULL);
-
-     in = ctxt->input->cur;
-     while (*in != 0 && *in == *cmp) {
-@@ -3569,6 +3589,8 @@
- #endif
-
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(NULL);
-     c = CUR_CHAR(l);
-
-     while (xmlIsNameChar(ctxt, c)) {
-@@ -3597,6 +3619,10 @@
-               if (count++ > 100) {
-                   count = 0;
-                   GROW;
-+                    if (ctxt->instate == XML_PARSER_EOF) {
-+                        xmlFree(buffer);
-+                        return(NULL);
-+                    }
-               }
-               if (len + 10 > max) {
-                   xmlChar *tmp;
-@@ -3667,6 +3693,10 @@
-     ctxt->instate = XML_PARSER_ENTITY_VALUE;
-     input = ctxt->input;
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF) {
-+        xmlFree(buf);
-+        return(NULL);
-+    }
-     NEXT;
-     c = CUR_CHAR(l);
-     /*
-@@ -3678,8 +3708,8 @@
-      * In practice it means we stop the loop only when back at parsing
-      * the initial entity and the quote is found
-      */
--    while ((IS_CHAR(c)) && ((c != stop) || /* checked */
--         (ctxt->input != input))) {
-+    while (((IS_CHAR(c)) && ((c != stop) || /* checked */
-+          (ctxt->input != input))) && (ctxt->instate != XML_PARSER_EOF)) {
-       if (len + 5 >= size) {
-           xmlChar *tmp;
-
-@@ -3708,6 +3738,10 @@
-       }
-     }
-     buf[len] = 0;
-+    if (ctxt->instate == XML_PARSER_EOF) {
-+        xmlFree(buf);
-+        return(NULL);
-+    }
-
-     /*
-      * Raise problem w.r.t. '&' and '%' being used in non-entities
-@@ -3755,12 +3789,12 @@
-        */
-       ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
-                                     0, 0, 0);
--      if (orig != NULL)
-+      if (orig != NULL)
-           *orig = buf;
-       else
-           xmlFree(buf);
-     }
--
-+
-     return(ret);
- }
-
-@@ -3811,8 +3845,9 @@
-      * OK loop until we reach one of the ending char or a size limit.
-      */
-     c = CUR_CHAR(l);
--    while ((NXT(0) != limit) && /* checked */
--           (IS_CHAR(c)) && (c != '<')) {
-+    while (((NXT(0) != limit) && /* checked */
-+            (IS_CHAR(c)) && (c != '<')) &&
-+            (ctxt->instate != XML_PARSER_EOF)) {
-       if (c == 0) break;
-       if (c == '&') {
-           in_space = 0;
-@@ -3947,6 +3982,9 @@
-       GROW;
-       c = CUR_CHAR(l);
-     }
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        goto error;
-+
-     if ((in_space) && (normalize)) {
-         while ((len > 0) && (buf[len - 1] == 0x20)) len--;
-     }
-@@ -3979,6 +4017,7 @@
-
- mem_error:
-     xmlErrMemory(ctxt, NULL);
-+error:
-     if (buf != NULL)
-         xmlFree(buf);
-     if (rep != NULL)
-@@ -4084,6 +4123,10 @@
-       if (count > 50) {
-           GROW;
-           count = 0;
-+            if (ctxt->instate == XML_PARSER_EOF) {
-+              xmlFree(buf);
-+              return(NULL);
-+            }
-       }
-       COPY_BUF(l,buf,len,cur);
-       NEXTL(l);
-@@ -4161,6 +4204,10 @@
-       if (count > 50) {
-           GROW;
-           count = 0;
-+            if (ctxt->instate == XML_PARSER_EOF) {
-+              xmlFree(buf);
-+              return(NULL);
-+            }
-       }
-       NEXT;
-       cur = CUR;
-@@ -4367,6 +4414,8 @@
-           }
-           SHRINK;
-           GROW;
-+            if (ctxt->instate == XML_PARSER_EOF)
-+              return;
-           in = ctxt->input->cur;
-       } while (((*in >= 0x20) && (*in <= 0x7F)) || (*in == 0x09));
-       nbchar = 0;
-@@ -4435,6 +4484,8 @@
-       if (count > 50) {
-           GROW;
-           count = 0;
-+            if (ctxt->instate == XML_PARSER_EOF)
-+              return;
-       }
-       NEXTL(l);
-       cur = CUR_CHAR(l);
-@@ -4635,6 +4686,10 @@
-       if (count > 50) {
-           GROW;
-           count = 0;
-+            if (ctxt->instate == XML_PARSER_EOF) {
-+              xmlFree(buf);
-+              return;
-+            }
-       }
-       NEXTL(l);
-       cur = CUR_CHAR(l);
-@@ -4785,6 +4840,10 @@
-       }
-       SHRINK;
-       GROW;
-+        if (ctxt->instate == XML_PARSER_EOF) {
-+            xmlFree(buf);
-+            return;
-+        }
-       in = ctxt->input->cur;
-       if (*in == '-') {
-           if (in[1] == '-') {
-@@ -4803,7 +4862,8 @@
-                   }
-                   if (buf != NULL)
-                       xmlFree(buf);
--                  ctxt->instate = state;
-+                  if (ctxt->instate != XML_PARSER_EOF)
-+                      ctxt->instate = state;
-                   return;
-               }
-               if (buf != NULL) {
-@@ -5022,6 +5082,10 @@
-               count++;
-               if (count > 50) {
-                   GROW;
-+                    if (ctxt->instate == XML_PARSER_EOF) {
-+                        xmlFree(buf);
-+                        return;
-+                    }
-                   count = 0;
-               }
-               COPY_BUF(l,buf,len,cur);
-@@ -5371,6 +5435,8 @@
-               }
-           }
-       }
-+      if (ctxt->instate == XML_PARSER_EOF)
-+          return;
-       SKIP_BLANKS;
-       if (RAW != '>') {
-           xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED,
-@@ -5762,7 +5828,7 @@
-       }
-       SKIP_BLANKS;
-       GROW;
--      while (RAW != '>') {
-+      while ((RAW != '>') && (ctxt->instate != XML_PARSER_EOF)) {
-           const xmlChar *check = CUR_PTR;
-           int type;
-           int def;
-@@ -5911,7 +5977,7 @@
-           ret = cur = xmlNewDocElementContent(ctxt->myDoc, NULL, 
XML_ELEMENT_CONTENT_PCDATA);
-           if (ret == NULL) return(NULL);
-       }
--      while (RAW == '|') {
-+      while ((RAW == '|') && (ctxt->instate != XML_PARSER_EOF)) {
-           NEXT;
-           if (elem == NULL) {
-               ret = xmlNewDocElementContent(ctxt->myDoc, NULL, 
XML_ELEMENT_CONTENT_OR);
-@@ -6055,7 +6121,7 @@
-     }
-     SKIP_BLANKS;
-     SHRINK;
--    while (RAW != ')') {
-+    while ((RAW != ')') && (ctxt->instate != XML_PARSER_EOF)) {
-         /*
-        * Each loop we parse one separator and one element.
-        */
-@@ -6334,6 +6400,8 @@
-     }
-     NEXT;
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(-1);
-     SKIP_BLANKS;
-     if (CMP7(CUR_PTR, '#', 'P', 'C', 'D', 'A', 'T', 'A')) {
-         tree = xmlParseElementMixedContentDecl(ctxt, inputid);
-@@ -6501,8 +6569,8 @@
-                   "Entering INCLUDE Conditional Section\n");
-       }
-
--      while ((RAW != 0) && ((RAW != ']') || (NXT(1) != ']') ||
--             (NXT(2) != '>'))) {
-+      while (((RAW != 0) && ((RAW != ']') || (NXT(1) != ']') ||
-+              (NXT(2) != '>'))) && (ctxt->instate != XML_PARSER_EOF)) {
-           const xmlChar *check = CUR_PTR;
-           unsigned int cons = ctxt->input->consumed;
-
-@@ -6570,7 +6638,8 @@
-       if (ctxt->recovery == 0) ctxt->disableSAX = 1;
-       ctxt->instate = XML_PARSER_IGNORE;
-
--      while ((depth >= 0) && (RAW != 0)) {
-+      while (((depth >= 0) && (RAW != 0)) &&
-+               (ctxt->instate != XML_PARSER_EOF)) {
-         if ((RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
-           depth++;
-           SKIP(3);
-@@ -6841,7 +6910,7 @@
-           break;
-       }
-     }
--
-+
-     if (RAW != 0) {
-       xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL);
-     }
-@@ -7310,6 +7379,8 @@
-     xmlEntityPtr ent = NULL;
-
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(NULL);
-
-     if (RAW != '&')
-         return(NULL);
-@@ -7355,6 +7426,8 @@
-           ent = xmlSAX2GetEntity(ctxt, name);
-       }
-     }
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return(NULL);
-     /*
-      * [ WFC: Entity Declared ]
-      * In a document without any DTD, a document with only an
-@@ -7545,6 +7618,10 @@
-           ent = xmlSAX2GetEntity(ctxt, name);
-       }
-     }
-+    if (ctxt->instate == XML_PARSER_EOF) {
-+      xmlFree(name);
-+      return(NULL);
-+    }
-
-     /*
-      * [ WFC: Entity Declared ]
-@@ -7706,8 +7783,9 @@
-      */
-     if ((ctxt->sax != NULL) &&
-       (ctxt->sax->getParameterEntity != NULL))
--      entity = ctxt->sax->getParameterEntity(ctxt->userData,
--                                             name);
-+      entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return;
-     if (entity == NULL) {
-       /*
-        * [ WFC: Entity Declared ]
-@@ -7840,6 +7918,10 @@
-       if (count++ > 100) {
-           count = 0;
-           GROW;
-+            if (ctxt->instate == XML_PARSER_EOF) {
-+                xmlBufferFree(buf);
-+                return(-1);
-+            }
-       }
-       NEXTL(l);
-       c = CUR_CHAR(l);
-@@ -7931,8 +8013,11 @@
-      */
-     if ((ctxt->sax != NULL) &&
-       (ctxt->sax->getParameterEntity != NULL))
--      entity = ctxt->sax->getParameterEntity(ctxt->userData,
--                                             name);
-+      entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
-+    if (ctxt->instate == XML_PARSER_EOF) {
-+      xmlFree(name);
-+      return(NULL);
-+    }
-     if (entity == NULL) {
-       /*
-        * [ WFC: Entity Declared ]
-@@ -8034,6 +8119,8 @@
-     if ((ctxt->sax != NULL) && (ctxt->sax->internalSubset != NULL) &&
-       (!ctxt->disableSAX))
-       ctxt->sax->internalSubset(ctxt->userData, name, ExternalID, URI);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return;
-
-     /*
-      * Is there any internal subset declarations ?
-@@ -8073,7 +8160,7 @@
-        * PEReferences.
-        * Subsequence (markupdecl | PEReference | S)*
-        */
--      while (RAW != ']') {
-+      while ((RAW != ']') && (ctxt->instate != XML_PARSER_EOF)) {
-           const xmlChar *check = CUR_PTR;
-           unsigned int cons = ctxt->input->consumed;
-
-@@ -8259,9 +8346,9 @@
-     SKIP_BLANKS;
-     GROW;
-
--    while ((RAW != '>') &&
-+    while (((RAW != '>') &&
-          ((RAW != '/') || (NXT(1) != '>')) &&
--         (IS_BYTE_CHAR(RAW))) {
-+         (IS_BYTE_CHAR(RAW))) && (ctxt->instate != XML_PARSER_EOF)) {
-       const xmlChar *q = CUR_PTR;
-       unsigned int cons = ctxt->input->consumed;
-
-@@ -8685,6 +8772,8 @@
-           if (in >= end) {
-               const xmlChar *oldbase = ctxt->input->base;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(NULL);
-               if (oldbase != ctxt->input->base) {
-                   long delta = ctxt->input->base - oldbase;
-                   start = start + delta;
-@@ -8699,6 +8788,8 @@
-           if (in >= end) {
-               const xmlChar *oldbase = ctxt->input->base;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(NULL);
-               if (oldbase != ctxt->input->base) {
-                   long delta = ctxt->input->base - oldbase;
-                   start = start + delta;
-@@ -8719,6 +8810,8 @@
-           if (in >= end) {
-               const xmlChar *oldbase = ctxt->input->base;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(NULL);
-               if (oldbase != ctxt->input->base) {
-                   long delta = ctxt->input->base - oldbase;
-                   start = start + delta;
-@@ -8736,6 +8829,8 @@
-           if (in >= end) {
-               const xmlChar *oldbase = ctxt->input->base;
-               GROW;
-+                if (ctxt->instate == XML_PARSER_EOF)
-+                    return(NULL);
-               if (oldbase != ctxt->input->base) {
-                   long delta = ctxt->input->base - oldbase;
-                   start = start + delta;
-@@ -8967,9 +9062,9 @@
-     GROW;
-     if (ctxt->input->base != base) goto base_changed;
-
--    while ((RAW != '>') &&
-+    while (((RAW != '>') &&
-          ((RAW != '/') || (NXT(1) != '>')) &&
--         (IS_BYTE_CHAR(RAW))) {
-+         (IS_BYTE_CHAR(RAW))) && (ctxt->instate != XML_PARSER_EOF)) {
-       const xmlChar *q = CUR_PTR;
-       unsigned int cons = ctxt->input->consumed;
-       int len = -1, alloc = 0;
-@@ -9140,6 +9235,8 @@
- failed:
-
-       GROW
-+        if (ctxt->instate == XML_PARSER_EOF)
-+            break;
-       if (ctxt->input->base != base) goto base_changed;
-       if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
-           break;
-@@ -9377,6 +9474,8 @@
-      * We should definitely be at the ending "S? '>'" part
-      */
-     GROW;
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return;
-     SKIP_BLANKS;
-     if ((!IS_BYTE_CHAR(RAW)) || (RAW != '>')) {
-       xmlFatalErr(ctxt, XML_ERR_GT_REQUIRED, NULL);
-@@ -9485,6 +9584,10 @@
-       count++;
-       if (count > 50) {
-           GROW;
-+            if (ctxt->instate == XML_PARSER_EOF) {
-+              xmlFree(buf);
-+              return;
-+            }
-           count = 0;
-       }
-       NEXTL(l);
-@@ -9733,6 +9836,8 @@
-      * Parse the content of the element:
-      */
-     xmlParseContent(ctxt);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return;
-     if (!IS_BYTE_CHAR(RAW)) {
-         xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NOT_FINISHED,
-        "Premature end of data in tag %s line %d\n",
-@@ -10255,9 +10360,10 @@
-
- void
- xmlParseMisc(xmlParserCtxtPtr ctxt) {
--    while (((RAW == '<') && (NXT(1) == '?')) ||
--           (CMP4(CUR_PTR, '<', '!', '-', '-')) ||
--           IS_BLANK_CH(CUR)) {
-+    while ((ctxt->instate != XML_PARSER_EOF) &&
-+           (((RAW == '<') && (NXT(1) == '?')) ||
-+            (CMP4(CUR_PTR, '<', '!', '-', '-')) ||
-+            IS_BLANK_CH(CUR))) {
-         if ((RAW == '<') && (NXT(1) == '?')) {
-           xmlParsePI(ctxt);
-       } else if (IS_BLANK_CH(CUR)) {
-@@ -10304,6 +10410,8 @@
-      */
-     if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
-         ctxt->sax->setDocumentLocator(ctxt->userData, &xmlDefaultSAXLocator);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return(-1);
-
-     if ((ctxt->encoding == NULL) &&
-         ((ctxt->input->end - ctxt->input->cur) >= 4)) {
-@@ -10355,6 +10463,8 @@
-     }
-     if ((ctxt->sax) && (ctxt->sax->startDocument) && (!ctxt->disableSAX))
-         ctxt->sax->startDocument(ctxt->userData);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return(-1);
-
-     /*
-      * The Misc part of the Prolog
-@@ -10374,6 +10484,8 @@
-       if (RAW == '[') {
-           ctxt->instate = XML_PARSER_DTD;
-           xmlParseInternalSubset(ctxt);
-+          if (ctxt->instate == XML_PARSER_EOF)
-+              return(-1);
-       }
-
-       /*
-@@ -10384,6 +10496,8 @@
-           (!ctxt->disableSAX))
-           ctxt->sax->externalSubset(ctxt->userData, ctxt->intSubName,
-                                     ctxt->extSubSystem, ctxt->extSubURI);
-+      if (ctxt->instate == XML_PARSER_EOF)
-+          return(-1);
-       ctxt->inSubset = 0;
-
-         xmlCleanSpecialAttr(ctxt);
-@@ -10524,6 +10638,8 @@
-     }
-     if ((ctxt->sax) && (ctxt->sax->startDocument) && (!ctxt->disableSAX))
-         ctxt->sax->startDocument(ctxt->userData);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return(-1);
-
-     /*
-      * Doing validity checking on chunk doesn't make sense
-@@ -10535,6 +10651,9 @@
-
-     xmlParseContent(ctxt);
-
-+    if (ctxt->instate == XML_PARSER_EOF)
-+      return(-1);
-+
-     if ((RAW == '<') && (NXT(1) == '/')) {
-       xmlFatalErr(ctxt, XML_ERR_NOT_WELL_BALANCED, NULL);
-     } else if (RAW != 0) {
-@@ -10841,7 +10960,7 @@
-     }
-     xmlParseGetLasts(ctxt, &lastlt, &lastgt);
-
--    while (1) {
-+    while (ctxt->instate != XML_PARSER_EOF) {
-       if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1))
-           return(0);
-
-@@ -11081,6 +11200,8 @@
-                           ctxt->sax->endElement(ctxt->userData, name);
- #endif /* LIBXML_SAX1_ENABLED */
-                   }
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   spacePop(ctxt);
-                   if (ctxt->nameNr == 0) {
-                       ctxt->instate = XML_PARSER_EPILOG;
-@@ -11262,6 +11383,8 @@
-                               ctxt->sax->characters(ctxt->userData,
-                                                     ctxt->input->cur, tmp);
-                       }
-+                      if (ctxt->instate == XML_PARSER_EOF)
-+                          goto done;
-                       SKIPL(tmp);
-                       ctxt->checkIndex = 0;
-                   }
-@@ -11297,6 +11420,8 @@
-                           ctxt->sax->characters(ctxt->userData,
-                                                 ctxt->input->cur, base);
-                   }
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   SKIPL(base + 3);
-                   ctxt->checkIndex = 0;
-                   ctxt->instate = XML_PARSER_CONTENT;
-@@ -11328,6 +11453,8 @@
-                           "PP: Parsing PI\n");
- #endif
-                   xmlParsePI(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   ctxt->checkIndex = 0;
-               } else if ((cur == '<') && (next == '!') &&
-                   (ctxt->input->cur[2] == '-') &&
-@@ -11340,6 +11467,8 @@
-                           "PP: Parsing Comment\n");
- #endif
-                   xmlParseComment(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   ctxt->instate = XML_PARSER_MISC;
-                   ctxt->checkIndex = 0;
-               } else if ((cur == '<') && (next == '!') &&
-@@ -11359,6 +11488,8 @@
- #endif
-                   ctxt->inSubset = 1;
-                   xmlParseDocTypeDecl(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   if (RAW == '[') {
-                       ctxt->instate = XML_PARSER_DTD;
- #ifdef DEBUG_PUSH
-@@ -11415,6 +11546,8 @@
-                           "PP: Parsing PI\n");
- #endif
-                   xmlParsePI(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-               } else if ((cur == '<') && (next == '!') &&
-                   (ctxt->input->cur[2] == '-') && (ctxt->input->cur[3] == 
'-')) {
-                   if ((!terminate) &&
-@@ -11425,6 +11558,8 @@
-                           "PP: Parsing Comment\n");
- #endif
-                   xmlParseComment(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   ctxt->instate = XML_PARSER_PROLOG;
-               } else if ((cur == '<') && (next == '!') &&
-                          (avail < 4)) {
-@@ -11459,6 +11594,8 @@
-                           "PP: Parsing PI\n");
- #endif
-                   xmlParsePI(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   ctxt->instate = XML_PARSER_EPILOG;
-               } else if ((cur == '<') && (next == '!') &&
-                   (ctxt->input->cur[2] == '-') && (ctxt->input->cur[3] == 
'-')) {
-@@ -11470,6 +11607,8 @@
-                           "PP: Parsing Comment\n");
- #endif
-                   xmlParseComment(ctxt);
-+                  if (ctxt->instate == XML_PARSER_EOF)
-+                      goto done;
-                   ctxt->instate = XML_PARSER_EPILOG;
-               } else if ((cur == '<') && (next == '!') &&
-                          (avail < 4)) {
-@@ -11598,6 +11737,8 @@
-
- found_end_int_subset:
-               xmlParseInternalSubset(ctxt);
-+              if (ctxt->instate == XML_PARSER_EOF)
-+                  goto done;
-               ctxt->inSubset = 2;
-               if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
-                   (ctxt->sax->externalSubset != NULL))
-@@ -11605,6 +11746,8 @@
-                           ctxt->extSubSystem, ctxt->extSubURI);
-               ctxt->inSubset = 0;
-               xmlCleanSpecialAttr(ctxt);
-+              if (ctxt->instate == XML_PARSER_EOF)
-+                  goto done;
-               ctxt->instate = XML_PARSER_PROLOG;
-               ctxt->checkIndex = 0;
- #ifdef DEBUG_PUSH
-@@ -11813,6 +11956,10 @@
-         xmlParseTryOrFinish(ctxt, 0);
-     else
-         xmlParseTryOrFinish(ctxt, terminate);
-+
-+    if (ctxt->instate == XML_PARSER_EOF)
-+        return(ctxt->errNo);
-+
-     if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1))
-         return(ctxt->errNo);
-
-@@ -12006,6 +12153,7 @@
-     if (ctxt == NULL)
-         return;
-     ctxt->instate = XML_PARSER_EOF;
-+    ctxt->errNo = XML_ERR_USER_STOP;
-     ctxt->disableSAX = 1;
-     if (ctxt->input != NULL) {
-       ctxt->input->cur = BAD_CAST"";
diff --git a/source/base/libxml2/CVE-2014-0191.patch 
b/source/base/libxml2/CVE-2014-0191.patch
deleted file mode 100644
index 6611a41..0000000
--- a/source/base/libxml2/CVE-2014-0191.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From: Aron Xu <[email protected]>
-Date: Sun, 26 Oct 2014 12:24:03 +0800
-Subject: cve-2014-0191
-
----
- parser.c |   23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
-diff --git a/parser.c b/parser.c
-index 57500ef..7ef712d 100644
---- a/parser.c
-+++ b/parser.c
-@@ -2564,6 +2564,23 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) {
-                   xmlCharEncoding enc;
-
-                   /*
-+                   * Note: external parameter entities will not be loaded, it
-+                   * is not required for a non-validating parser, unless the
-+                   * option of validating, or substituting entities were
-+                   * given. Doing so is far more secure as the parser will
-+                   * only process data coming from the document entity by
-+                   * default.
-+                   */
-+                    if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
-+                      ((ctxt->options & XML_PARSE_NOENT) == 0) &&
-+                      ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
-+                      ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
-+                      ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
-+                      (ctxt->replaceEntities == 0) &&
-+                      (ctxt->validate == 0))
-+                      return;
-+
-+                  /*
-                    * handle the extra spaces added before and after
-                    * c.f. http://www.w3.org/TR/REC-xml#as-PE
-                    * this is done independently.
-@@ -12197,6 +12214,9 @@ xmlIOParseDTD(xmlSAXHandlerPtr sax, 
xmlParserInputBufferPtr input,
-       return(NULL);
-     }
-
-+    /* We are loading a DTD */
-+    ctxt->options |= XML_PARSE_DTDLOAD;
-+
-     /*
-      * Set-up the SAX context
-      */
-@@ -12324,6 +12344,9 @@ xmlSAXParseDTD(xmlSAXHandlerPtr sax, const xmlChar 
*ExternalID,
-       return(NULL);
-     }
-
-+    /* We are loading a DTD */
-+    ctxt->options |= XML_PARSE_DTDLOAD;
-+
-     /*
-      * Set-up the SAX context
-      */
diff --git a/source/base/libxml2/CVE-2014-3660-fix.patch 
b/source/base/libxml2/CVE-2014-3660-fix.patch
new file mode 100644
index 0000000..6c757d1
--- /dev/null
+++ b/source/base/libxml2/CVE-2014-3660-fix.patch
@@ -0,0 +1,28 @@
+From 72a46a519ce7326d9a00f0b6a7f2a8e958cd1675 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <[email protected]>
+Date: Thu, 23 Oct 2014 11:35:36 +0800
+Subject: Fix missing entities after CVE-2014-3660 fix
+
+For https://bugzilla.gnome.org/show_bug.cgi?id=738805
+
+The fix for CVE-2014-3660 introduced a regression in some case
+where entity substitution is required and the entity is used
+first in anotther entity referenced from an attribute value
+
+diff --git a/parser.c b/parser.c
+index 67c9dfd..a8d1b67 100644
+--- a/parser.c
++++ b/parser.c
+@@ -7235,7 +7235,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
+      * far more secure as the parser will only process data coming from
+      * the document entity by default.
+      */
+-    if ((ent->checked == 0) &&
++    if (((ent->checked == 0) ||
++         ((ent->children == NULL) && (ctxt->options & XML_PARSE_NOENT))) &&
+         ((ent->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY) ||
+          (ctxt->options & (XML_PARSE_NOENT | XML_PARSE_DTDVALID)))) {
+       unsigned long oldnbent = ctxt->nbentities;
+--
+cgit v0.10.2
+
diff --git a/source/base/libxml2/CVE-2014-3660.patch 
b/source/base/libxml2/CVE-2014-3660.patch
deleted file mode 100644
index 89698f3..0000000
--- a/source/base/libxml2/CVE-2014-3660.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From: Daniel Veillard <[email protected]>
-Date: Sun, 26 Oct 2014 12:35:43 +0800
-Subject: Fix for CVE-2014-3660
-
----
- parser.c |   42 ++++++++++++++++++++++++++++++++++++++----
- 1 file changed, 38 insertions(+), 4 deletions(-)
-
-diff --git a/parser.c b/parser.c
-index 7ef712d..b435913 100644
---- a/parser.c
-+++ b/parser.c
-@@ -127,6 +127,29 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size,
-         return (0);
-     if (ctxt->lastError.code == XML_ERR_ENTITY_LOOP)
-         return (1);
-+
-+    /*
-+     * This may look absurd but is needed to detect
-+     * entities problems
-+     */
-+    if ((ent != NULL) && (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) &&
-+      (ent->content != NULL) && (ent->checked == 0)) {
-+      unsigned long oldnbent = ctxt->nbentities;
-+      xmlChar *rep;
-+
-+      ent->checked = 1;
-+
-+      rep = xmlStringDecodeEntities(ctxt, ent->content,
-+                                XML_SUBSTITUTE_REF, 0, 0, 0);
-+
-+      ent->checked = (ctxt->nbentities - oldnbent + 1) * 2;
-+      if (rep != NULL) {
-+          if (xmlStrchr(rep, '<'))
-+              ent->checked |= 1;
-+          xmlFree(rep);
-+          rep = NULL;
-+      }
-+    }
-     if (replacement != 0) {
-       if (replacement < XML_MAX_TEXT_LENGTH)
-           return(0);
-@@ -186,9 +209,12 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size,
-             return (0);
-     } else {
-         /*
--         * strange we got no data for checking just return
-+         * strange we got no data for checking
-          */
--        return (0);
-+      if (((ctxt->lastError.code != XML_ERR_UNDECLARED_ENTITY) &&
-+           (ctxt->lastError.code != XML_WAR_UNDECLARED_ENTITY)) ||
-+          (ctxt->nbentities <= 10000))
-+          return (0);
-     }
-     xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
-     return (1);
-@@ -2553,6 +2579,7 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) {
-                                     name, NULL);
-                   ctxt->valid = 0;
-               }
-+              xmlParserEntityCheck(ctxt, 0, NULL, 0);
-           } else if (ctxt->input->free != deallocblankswrapper) {
-                   input = xmlNewBlanksWrapperInputStream(ctxt, entity);
-                   if (xmlPushInput(ctxt, input) < 0)
-@@ -2723,6 +2750,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const 
xmlChar *str, int len,
-           if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) ||
-               (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR))
-               goto int_error;
-+          xmlParserEntityCheck(ctxt, 0, ent, 0);
-           if (ent != NULL)
-               ctxt->nbentities += ent->checked;
-           if ((ent != NULL) &&
-@@ -2774,6 +2802,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const 
xmlChar *str, int len,
-           ent = xmlParseStringPEReference(ctxt, &str);
-           if (ctxt->lastError.code == XML_ERR_ENTITY_LOOP)
-               goto int_error;
-+          xmlParserEntityCheck(ctxt, 0, ent, 0);
-           if (ent != NULL)
-               ctxt->nbentities += ent->checked;
-           if (ent != NULL) {
-@@ -7127,6 +7156,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
-                  (ret != XML_WAR_UNDECLARED_ENTITY)) {
-           xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
-                    "Entity '%s' failed to parse\n", ent->name);
-+          xmlParserEntityCheck(ctxt, 0, ent, 0);
-       } else if (list != NULL) {
-           xmlFreeNodeList(list);
-           list = NULL;
-@@ -7235,7 +7265,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
-               /*
-                * We are copying here, make sure there is no abuse
-                */
--              ctxt->sizeentcopy += ent->length;
-+              ctxt->sizeentcopy += ent->length + 5;
-               if (xmlParserEntityCheck(ctxt, 0, ent, ctxt->sizeentcopy))
-                   return;
-
-@@ -7283,7 +7313,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
-               /*
-                * We are copying here, make sure there is no abuse
-                */
--              ctxt->sizeentcopy += ent->length;
-+              ctxt->sizeentcopy += ent->length + 5;
-               if (xmlParserEntityCheck(ctxt, 0, ent, ctxt->sizeentcopy))
-                   return;
-
-@@ -7467,6 +7497,7 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) {
-               ctxt->sax->reference(ctxt->userData, name);
-           }
-       }
-+      xmlParserEntityCheck(ctxt, 0, ent, 0);
-       ctxt->valid = 0;
-     }
-
-@@ -7654,6 +7685,7 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const 
xmlChar ** str) {
-                         "Entity '%s' not defined\n",
-                         name);
-       }
-+      xmlParserEntityCheck(ctxt, 0, ent, 0);
-       /* TODO ? check regressions ctxt->valid = 0; */
-     }
-
-@@ -7812,6 +7844,7 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt)
-                         name, NULL);
-           ctxt->valid = 0;
-       }
-+      xmlParserEntityCheck(ctxt, 0, NULL, 0);
-     } else {
-       /*
-        * Internal checking in case the entity quest barfed
-@@ -8039,6 +8072,7 @@ xmlParseStringPEReference(xmlParserCtxtPtr ctxt, const 
xmlChar **str) {
-                         name, NULL);
-           ctxt->valid = 0;
-       }
-+      xmlParserEntityCheck(ctxt, 0, NULL, 0);
-     } else {
-       /*
-        * Internal checking in case the entity quest barfed
diff --git a/source/base/libxml2/FrugalBuild b/source/base/libxml2/FrugalBuild
index 88061b1..cd67d5f 100644
--- a/source/base/libxml2/FrugalBuild
+++ b/source/base/libxml2/FrugalBuild
@@ -5,18 +5,20 @@
options+=('asneeded')

pkgname=libxml2
-pkgver=2.8.0
-pkgrel=5
+pkgver=2.9.2
+pkgrel=1
pkgdesc="XML parsing library"
url="http://www.xmlsoft.org/";
groups=('base' 'chroot-core')
archs=('i686' 'x86_64' 'arm')
-depends=('zlib>=1.2.3-6')
+depends=('zlib>=1.2.3-6' 'xz')
makedepends=('python>=2.7' 'readline>=6.2')
#up2date="lynx -dump 'ftp://xmlsoft.org/libxml2/'|grep -m1 
'LATEST_LIBXML2_IS_'|sed 's/.*xml2-\(.*\).t.*/\1/'"
up2date="Flasttar ftp://xmlsoft.org/libxml2/";
-source=(ftp://xmlsoft.org/$pkgname/$pkgname-$pkgver.tar.gz)
-sha1sums=('a0c553bd51ba79ab6fff26dc700004c6a41f5250')
+source=(ftp://xmlsoft.org/$pkgname/$pkgname-$pkgver.tar.gz 
revert-catalog-initialize.patch CVE-2014-3660-fix.patch)
+sha1sums=('f46a37ea6d869f702e03f393c376760f3cbee673' \
+          '90708a805edfc7d035e348397e61e17396cd36d1' \
+          '818e2d72aa868d750c2d6a82a85001b435e81e28')
Finclude python

subpkgs=("$pkgname-docs")
@@ -33,23 +35,13 @@ subgroups+=('devel-extra')
subarchs+=('i686 x86_64')
subdepends+=('python')

-# FSA fix ***
-source=(${source[@]} CVE-2012-5134.patch CVE-2013-0339.patch 
CVE-2013-2877.patch
-                     CVE-2014-0191.patch CVE-2014-3660.patch)
-sha1sums=(${sha1sums[@]} '5f2ca3ffa6f8ae87ca5f3be1bdd7c06f8ffdea35' \
-                         '802a1a8c33c8808effd4505419057a5dc27a9599' \
-                         '8856fa620e57369a2c8b30f7e35afb78685ded69' \
-                         '9005e0b126756aba61e06a5bbfb8c97591caedd6' \
-                         'ff56d72e53528ab2b6039d334d2f9834ca44efee')
-# ***********
-
build() {
Fpatchall
-       Fsed "tail -1" "tail -n 1" configure
-       Fsed "head -1" "head -n 1" configure
+       #Fsed "tail -1" "tail -n 1" configure
+       #Fsed "head -1" "head -n 1" configure
Fmake --with-threads --with-readline --with-zlib
Fmakeinstall
-       Ffilerel libxml-2.0.pc /usr/lib/pkgconfig/libxml-2.0.pc
+       #Ffilerel libxml-2.0.pc /usr/lib/pkgconfig/libxml-2.0.pc
Fsplit $pkgname-docs usr/share/gtk-doc
Fsplit $pkgname-docs usr/share/doc

diff --git a/source/base/libxml2/revert-catalog-initialize.patch 
b/source/base/libxml2/revert-catalog-initialize.patch
new file mode 100644
index 0000000..cd81739
--- /dev/null
+++ b/source/base/libxml2/revert-catalog-initialize.patch
@@ -0,0 +1,27 @@
+From f65128f38289d77ff322d63aef2858cc0a819c34 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <[email protected]>
+Date: Fri, 17 Oct 2014 17:13:41 +0800
+Subject: Revert "Missing initialization for the catalog module"
+
+This reverts commit 054c716ea1bf001544127a4ab4f4346d1b9947e7.
+As this break xmlcatalog command
+https://bugzilla.redhat.com/show_bug.cgi?id=1153753
+
+diff --git a/parser.c b/parser.c
+index 1d93967..67c9dfd 100644
+--- a/parser.c
++++ b/parser.c
+@@ -14830,9 +14830,6 @@ xmlInitParser(void) {
+ #ifdef LIBXML_XPATH_ENABLED
+       xmlXPathInit();
+ #endif
+-#ifdef LIBXML_CATALOG_ENABLED
+-        xmlInitializeCatalog();
+-#endif
+       xmlParserInitialized = 1;
+ #ifdef LIBXML_THREAD_ENABLED
+     }
+--
+cgit v0.10.1
+
+
diff --git a/source/base/libxml2/versioning.diff 
b/source/base/libxml2/versioning.diff
deleted file mode 100644
index fd7a683..0000000
--- a/source/base/libxml2/versioning.diff
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/configure.in b/configure.in
-index 59d0629..39b66dd 100644
---- a/configure.in
-+++ b/configure.in
-@@ -75,6 +75,8 @@ dnl if the system support linker version scripts for symbol 
versioning
- dnl then add it
- dnl
- VERSION_SCRIPT_FLAGS=
-+echo host $host
-+echo lt_cv_prog_gnu_ld $lt_cv_prog_gnu_ld
- # lt_cv_prog_gnu_ld is from libtool 2.+
- if test "$lt_cv_prog_gnu_ld" = yes; then
-   VERSION_SCRIPT_FLAGS=-Wl,--version-script=
-@@ -82,9 +84,12 @@ else
-   case $host in
-   *-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
-   esac
-+  case $host in
-+  *-*-linux*) VERSION_SCRIPT_FLAGS="-Wl,--version-script=";;
-+  esac
- fi
- AC_SUBST(VERSION_SCRIPT_FLAGS)
--AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -z "$VERSION_SCRIPT_FLAGS"])
-+AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
-
- dnl
- dnl We process the AC_ARG_WITH first so that later we can modify
-diff --git a/configure.in b/configure.in
-*** a/configure
---- b/configure
-*************** CC="$lt_save_CC"
-*** 11405,11410 ****
---- 11405,11412 ----
-
-
-  VERSION_SCRIPT_FLAGS=
-+ echo host $host
-+ echo lt_cv_prog_gnu_ld $lt_cv_prog_gnu_ld
-  # lt_cv_prog_gnu_ld is from libtool 2.+
-  if test "$lt_cv_prog_gnu_ld" = yes; then
-    VERSION_SCRIPT_FLAGS=-Wl,--version-script=
-*************** else
-*** 11414,11420 ****
-    esac
-  fi
-
-!  if test -z "$VERSION_SCRIPT_FLAGS"; then
-    USE_VERSION_SCRIPT_TRUE=
-    USE_VERSION_SCRIPT_FALSE='#'
-  else
---- 11416,11422 ----
-    esac
-  fi
-
-!  if test -n "$VERSION_SCRIPT_FLAGS"; then
-    USE_VERSION_SCRIPT_TRUE=
-    USE_VERSION_SCRIPT_FALSE='#'
-  else
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to