Kaydet (Commit) 73e257f9 authored tarafından Pedro Giffuni's avatar Pedro Giffuni

i121528 - Update internal libxml2 to version 2.7.8.

Despite not being the latest version, 2.7.8 has been relatively well
tested and introduces no API changes.

The last update to our internal XML C parser was done in Oct 6 2009,
so the list of enhancements is quite big:
http://xmlsoft.org/news.html

In addition to the normal updates we include a couple of vulnerability 
fixes from FreeBSD. 
üst 3484496e
......@@ -187,9 +187,9 @@ if ( true )
URL1 = $(OOO_EXTRAS)$(MD5)-$(name)
if (SYSTEM_LIBXML != YES)
MD5 = 7740a8ec23878a2f50120e1faa2730f2
name = libxml2-2.7.6.tar.gz
URL1 = ftp://xmlsoft.org/libxml2/libxml2-2.7.6.tar.gz
MD5 = 8127a65e8c3b08856093099b52599c86
name = libxml2-2.7.8.tar.gz
URL1 = ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
if (SYSTEM_LIBXSLT != YES)
......
--- misc/libxml2-2.7.6/ltmain.sh 2009-10-06 17:39:54.000000000 +0100
+++ misc/build/libxml2-2.7.6/ltmain.sh 2009-12-17 11:43:56.000000000 +0000
@@ -6271,8 +6271,8 @@
--- misc/libxml2-2.7.8/ltmain.sh 2009-10-06 17:39:54.000000000 +0100
+++ misc/build/libxml2-2.7.8/ltmain.sh 2009-12-17 11:43:56.000000000 +0000
@@ -6599,8 +6599,8 @@
;;
freebsd-elf)
......@@ -11,8 +11,8 @@
;;
irix | nonstopux)
--- misc/libxml2-2.7.6/include/libxml/xmlversion.h 2009-12-17 11:45:19.000000000 +0000
+++ misc/build/libxml2-2.7.6/include/libxml/xmlversion.h 2009-12-17 11:45:36.000000000 +0000
--- misc/libxml2-2.7.8/include/libxml/xmlversion.h 2009-12-17 11:45:19.000000000 +0000
+++ misc/build/libxml2-2.7.8/include/libxml/xmlversion.h 2009-12-17 11:45:36.000000000 +0000
@@ -264,7 +264,7 @@
*
* Whether iconv support is available
......@@ -22,7 +22,7 @@
#define LIBXML_ICONV_ENABLED
#endif
@@ -282,7 +282,7 @@
@@ -291,7 +291,7 @@
*
* Whether Debugging module is configured in
*/
......@@ -31,7 +31,7 @@
#define LIBXML_DEBUG_ENABLED
#endif
@@ -291,7 +291,7 @@
@@ -300,7 +300,7 @@
*
* Whether the memory debugging is configured in
*/
......@@ -40,7 +40,7 @@
#define DEBUG_MEMORY_LOCATION
#endif
@@ -300,7 +300,7 @@
@@ -309,7 +309,7 @@
*
* Whether the runtime debugging is configured in
*/
......@@ -49,8 +49,8 @@
#define LIBXML_DEBUG_RUNTIME
#endif
--- misc/libxml2-2.7.6/xml2-config.in 2009-12-17 11:45:20.000000000 +0000
+++ misc/build/libxml2-2.7.6/xml2-config.in 2009-12-17 11:45:36.000000000 +0000
--- misc/libxml2-2.7.8/xml2-config.in 2009-12-17 11:45:20.000000000 +0000
+++ misc/build/libxml2-2.7.8/xml2-config.in 2009-12-17 11:45:36.000000000 +0000
@@ -1,9 +1,14 @@
#! /bin/sh
......
diff -ru misc/libxml2-2.7.8/parser.c misc/build/libxml2-2.7.8/parser.c
--- misc/libxml2-2.7.8/parser.c 2010-11-04 10:55:45.000000000 -0500
+++ misc/build/libxml2-2.7.8/parser.c 2012-12-20 14:53:03.000000000 -0500
@@ -2709,7 +2709,7 @@
buffer[nbchars++] = '&';
if (nbchars > buffer_size - i - XML_PARSER_BUFFER_SIZE) {
- growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+ growBuffer(buffer, i + XML_PARSER_BUFFER_SIZE);
}
for (;i > 0;i--)
buffer[nbchars++] = *cur++;
diff -ru misc/libxml2-2.7.8/xpointer.c misc/build/libxml2-2.7.8/xpointer.c
--- misc/libxml2-2.7.8/xpointer.c 2010-10-12 01:25:33.000000000 -0500
+++ misc/build/libxml2-2.7.8/xpointer.c 2012-12-20 14:53:03.000000000 -0500
@@ -1007,21 +1007,14 @@
NEXT;
break;
}
- *cur++ = CUR;
} else if (CUR == '(') {
level++;
- *cur++ = CUR;
} else if (CUR == '^') {
- NEXT;
- if ((CUR == ')') || (CUR == '(') || (CUR == '^')) {
- *cur++ = CUR;
- } else {
- *cur++ = '^';
- *cur++ = CUR;
- }
- } else {
- *cur++ = CUR;
+ if ((NXT(1) == ')') || (NXT(1) == '(') || (NXT(1) == '^')) {
+ NEXT;
+ }
}
+ *cur++ = CUR;
NEXT;
}
*cur = 0;
--- misc/libxml2-2.7.6/libxml2.syms Tue Oct 6 18:31:35 2009
+++ misc/build/libxml2-2.7.6/libxml2.syms Wed Jul 7 15:43:17 2010
--- misc/libxml2-2.7.8/libxml2.syms Tue Oct 6 18:31:35 2009
+++ misc/build/libxml2-2.7.8/libxml2.syms Wed Jul 7 15:43:17 2010
@@ -2184,10 +2184,10 @@
} LIBXML2_2.6.27;
......
--- misc/libxml2-2.7.6/relaxng.c 2009-12-17 11:53:12.000000000 +0000
+++ misc/build/libxml2-2.7.6/relaxng.c 2009-12-17 16:30:43.000000000 +0000
@@ -5369,7 +5369,7 @@
} else {
xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_CONTENT,
"expecting name, anyName, nsName or choice : got %s\n",
- (node == NULL ? "nothing" : node->name), NULL);
+ (node == NULL ? BAD_CAST "nothing" : node->name), NULL);
return (NULL);
}
if (ret != def) {
@@ -9459,7 +9459,7 @@
ctxt->states = NULL;
if (found == 0) {
if (cur == NULL) {
- VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, "noname");
+ VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, BAD_CAST "noname");
} else {
VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, cur->name);
}
--- misc/libxml2-2.7.6/uri.c 2009-10-02 17:28:55.000000000 +0200
+++ misc/build/libxml2-2.7.6/uri.c 2011-02-24 13:47:19.349299000 +0100
--- misc/libxml2-2.7.8/uri.c 2009-10-02 17:28:55.000000000 +0200
+++ misc/build/libxml2-2.7.8/uri.c 2011-02-24 13:47:19.349299000 +0100
@@ -2479,7 +2479,16 @@
if (path == NULL)
return(NULL);
......@@ -18,8 +18,8 @@
if ((path[0] == '/') && (path[1] == '/') && (path[2] != '/'))
path++;
--- misc/libxml2-2.7.6/xmlIO.c 2009-09-24 17:32:00.000000000 +0200
+++ misc/build/libxml2-2.7.6/xmlIO.c 2011-02-24 13:47:26.163762000 +0100
--- misc/libxml2-2.7.8/xmlIO.c 2009-09-24 17:32:00.000000000 +0200
+++ misc/build/libxml2-2.7.8/xmlIO.c 2011-02-24 13:47:26.163762000 +0100
@@ -772,6 +772,11 @@
#ifdef HAVE_STAT
......
--- misc/libxml2-2.7.6/configure 2008-01-11 17:01:56.000000000 +0900
+++ misc/build/libxml2-2.7.6/configure 2009-09-07 20:48:47.656250000 +0900
@@ -19914,6 +19914,8 @@
--- misc/libxml2-2.7.8/configure 2008-01-11 17:01:56.000000000 +0900
+++ misc/build/libxml2-2.7.8/configure 2009-09-07 20:48:47.656250000 +0900
@@ -13566,6 +13566,8 @@
if test "$with_modules" != "no" ; then
case "$host" in
......@@ -8,8 +8,8 @@
+ ;;
*-*-cygwin*)
MODULE_EXTENSION=".dll"
{ $as_echo "$as_me:$LINENO: checking for dlopen in -lcygwin" >&5
@@ -20632,11 +20636,10 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lcygwin" >&5
@@ -13868,11 +13868,10 @@
fi
case $host_os in
......@@ -22,8 +22,8 @@
;;
*cygwin*) THREAD_LIBS=""
;;
--- misc/libxml2-2.7.6/libxml.h 2007-11-23 19:47:23.000000000 +0900
+++ misc/build/libxml2-2.7.6/libxml.h 2009-07-10 14:37:34.988250000 +0900
--- misc/libxml2-2.7.8/libxml.h 2007-11-23 19:47:23.000000000 +0900
+++ misc/build/libxml2-2.7.8/libxml.h 2009-07-10 14:37:34.988250000 +0900
@@ -30,6 +30,10 @@
#include <libxml/xmlversion.h>
#else
......@@ -34,15 +34,4 @@
+#endif
#include <libxml/xmlversion.h>
#endif
--- misc/libxml2-2.7.6/include/libxml/xmlexports.h 2009-09-25 00:31:59.000000000 +0900
+++ misc/build/libxml2-2.7.6/include/libxml/xmlexports.h 2010-06-06 11:15:54.160750000 +0900
@@ -113,7 +113,7 @@
* _imp__xmlFree listed as missing. Try to workaround the problem
* by also making that declaration when compiling client code.
*/
- #if !defined(LIBXML_STATIC)
+ #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
#define XMLPUBFUN __declspec(dllexport)
#define XMLPUBVAR __declspec(dllexport)
#else
\ No newline at end of file
--- misc/libxml2-2.7.6/runtest.c 2009-09-24 23:32:00.000000000 +0800
+++ misc/build/libxml2-2.7.6/runtest.c 2012-05-29 14:17:16.852600200 +0800
--- misc/libxml2-2.7.8/runtest.c 2009-09-24 23:32:00.000000000 +0800
+++ misc/build/libxml2-2.7.8/runtest.c 2012-05-29 14:17:16.852600200 +0800
@@ -2728,7 +2728,7 @@
"file:///path/to/a%20b.html",
"/path/to/a b.html",
......
--- misc/libxml2-2.7.6/testapi.c 2009-09-24 23:32:00.000000000 +0800
+++ misc/build/libxml2-2.7.6/testapi.c 2012-05-29 14:17:00.868020600 +0800
--- misc/libxml2-2.7.8/testapi.c 2009-09-24 23:32:00.000000000 +0800
+++ misc/build/libxml2-2.7.8/testapi.c 2012-05-29 14:17:00.868020600 +0800
@@ -291,7 +291,7 @@
static xmlChar gen_xmlChar(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return('a');
......
--- misc/libxml2-2.7.6/xpath.c 2009-09-24 17:32:00.000000000 +0200
+++ misc/build/libxml2-2.7.6/xpath.c 2011-01-03 17:21:08.788256100 +0100
@@ -8106,9 +8106,17 @@
xmlNodePtr
xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
- if (cur != NULL && cur->children != NULL)
- return cur->children ;
- if (cur == NULL) cur = ctxt->context->node;
+ if ((cur != NULL) && (cur->type != XML_ATTRIBUTE_NODE) &&
+ (cur->type != XML_NAMESPACE_DECL) && (cur->children != NULL))
+ return(cur->children);
+
+ if (cur == NULL) {
+ cur = ctxt->context->node;
+ if (cur->type == XML_NAMESPACE_DECL)
+ return(NULL);
+ if (cur->type == XML_ATTRIBUTE_NODE)
+ cur = cur->parent;
+ }
if (cur == NULL) return(NULL) ; /* ERROR */
if (cur->next != NULL) return(cur->next) ;
do {
@@ -8162,8 +8170,13 @@
xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, xmlNodePtr cur)
{
if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
- if (cur == NULL)
+ if (cur == NULL) {
cur = ctxt->context->node;
+ if (cur->type == XML_NAMESPACE_DECL)
+ return(NULL);
+ if (cur->type == XML_ATTRIBUTE_NODE)
+ return(cur->parent);
+ }
if (cur == NULL)
return (NULL);
if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
@@ -8207,8 +8220,8 @@
cur = ctxt->context->node;
if (cur == NULL)
return (NULL);
- if (cur->type == XML_NAMESPACE_DECL)
- cur = (xmlNodePtr)((xmlNsPtr)cur)->next;
+ if (cur->type == XML_NAMESPACE_DECL)
+ return (NULL);
ctxt->ancestor = cur->parent;
}
if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
@@ -11737,11 +11750,16 @@
if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) {
xmlXPathObjectPtr tmp;
- /* pop the result */
+ /* pop the result if any */
tmp = valuePop(ctxt);
- xmlXPathReleaseObject(xpctxt, tmp);
- /* then pop off contextObj, which will be freed later */
- valuePop(ctxt);
+ if (tmp != contextObj) {
+ /*
+ * Free up the result
+ * then pop off contextObj, which will be freed later
+ */
+ xmlXPathReleaseObject(xpctxt, tmp);
+ valuePop(ctxt);
+ }
goto evaluation_error;
}
......@@ -38,16 +38,15 @@ all:
# --- Files --------------------------------------------------------
LIBXML2VERSION=2.7.6
LIBXML2VERSION=2.7.8
TARFILE_NAME=$(PRJNAME)-$(LIBXML2VERSION)
TARFILE_MD5=7740a8ec23878a2f50120e1faa2730f2
TARFILE_MD5=8127a65e8c3b08856093099b52599c86
# libxml2-global-symbols: #i112480#: Solaris ld won't export non-listed symbols
PATCH_FILES=libxml2-configure.patch \
libxml2-mingw.patch \
libxml2-gnome599717.patch \
libxml2-xpath.patch \
libxml2-fixes.patch \
libxml2-global-symbols.patch \
libxml2-testapi.patch \
libxml2-runtest.patch
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment