diff options
author | drochner <drochner@pkgsrc.org> | 2009-10-21 14:55:32 +0000 |
---|---|---|
committer | drochner <drochner@pkgsrc.org> | 2009-10-21 14:55:32 +0000 |
commit | 0cea78245e43e7b909f3825a5bd71456c6622bae (patch) | |
tree | 1e9c6d18f15f0025b8eceef382f658542ef8c594 /textproc/libxml2/patches | |
parent | 41dfbf20d7da46e81952eb180efc89e2eb7ab701 (diff) | |
download | pkgsrc-0cea78245e43e7b909f3825a5bd71456c6622bae.tar.gz |
update to 2.7.6
changes:
-bugfixes
-portability and documentation improvements
-cleanup
pkgsrc note: added some tweaks to EBCDIC support, both to fix non-
portable assumptions in the code and to work around NetBSD deficiencies;
now it needs only a little fix to CP273 (newline conversion) to make
the selftest succeed on NetBSD
Diffstat (limited to 'textproc/libxml2/patches')
-rw-r--r-- | textproc/libxml2/patches/patch-ab | 17 | ||||
-rw-r--r-- | textproc/libxml2/patches/patch-af | 162 | ||||
-rw-r--r-- | textproc/libxml2/patches/patch-ag | 23 |
3 files changed, 36 insertions, 166 deletions
diff --git a/textproc/libxml2/patches/patch-ab b/textproc/libxml2/patches/patch-ab index 601acfff319..72038528099 100644 --- a/textproc/libxml2/patches/patch-ab +++ b/textproc/libxml2/patches/patch-ab @@ -1,8 +1,17 @@ -$NetBSD: patch-ab,v 1.15 2006/01/14 07:50:52 recht Exp $ +$NetBSD: patch-ab,v 1.16 2009/10/21 14:55:32 drochner Exp $ ---- configure.orig 2006-01-05 16:20:34.000000000 +0100 -+++ configure 2006-01-12 11:25:52.000000000 +0100 -@@ -27339,7 +27339,7 @@ +--- configure.orig 2009-10-06 18:31:12.000000000 +0200 ++++ configure +@@ -12149,7 +12149,7 @@ CC="$lt_save_CC" + VERSION_SCRIPT_FLAGS= + $(/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null) && \ + VERSION_SCRIPT_FLAGS=-Wl,--version-script= +-test "`uname`" == "SunOS" && \ ++test "`uname`" = "SunOS" && \ + VERSION_SCRIPT_FLAGS="-Wl,-M -Wl," + + if test -n "$VERSION_SCRIPT_FLAGS"; then +@@ -19725,7 +19725,7 @@ fi fi diff --git a/textproc/libxml2/patches/patch-af b/textproc/libxml2/patches/patch-af deleted file mode 100644 index 281c73ad32a..00000000000 --- a/textproc/libxml2/patches/patch-af +++ /dev/null @@ -1,162 +0,0 @@ -$NetBSD: patch-af,v 1.5 2009/08/26 10:20:57 tron Exp $ - -Fix for CVE-2009-2414 and CVE-2009-2416 taken from here: -http://download.fedora.redhat.com/pub/fedora/linux/updates/11/SRPMS/libxml2-2.7.3-3.fc11.src.rpm - ---- parser.c.orig 2009-01-17 13:45:35.000000000 +0000 -+++ parser.c 2009-08-26 11:06:38.000000000 +0100 -@@ -5306,7 +5306,8 @@ - if (name == NULL) { - xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED, - "Name expected in NOTATION declaration\n"); -- return(ret); -+ xmlFreeEnumeration(ret); -+ return(NULL); - } - tmp = ret; - while (tmp != NULL) { -@@ -5322,7 +5323,10 @@ - } - if (tmp == NULL) { - cur = xmlCreateEnumeration(name); -- if (cur == NULL) return(ret); -+ if (cur == NULL) { -+ xmlFreeEnumeration(ret); -+ return(NULL); -+ } - if (last == NULL) ret = last = cur; - else { - last->next = cur; -@@ -5333,9 +5337,8 @@ - } while (RAW == '|'); - if (RAW != ')') { - xmlFatalErr(ctxt, XML_ERR_NOTATION_NOT_FINISHED, NULL); -- if ((last != NULL) && (last != ret)) -- xmlFreeEnumeration(last); -- return(ret); -+ xmlFreeEnumeration(ret); -+ return(NULL); - } - NEXT; - return(ret); -@@ -5390,7 +5393,10 @@ - cur = xmlCreateEnumeration(name); - if (!xmlDictOwns(ctxt->dict, name)) - xmlFree(name); -- if (cur == NULL) return(ret); -+ if (cur == NULL) { -+ xmlFreeEnumeration(ret); -+ return(NULL); -+ } - if (last == NULL) ret = last = cur; - else { - last->next = cur; -@@ -5758,9 +5764,10 @@ - } - - /** -- * xmlParseElementChildrenContentDecl: -+ * xmlParseElementChildrenContentDeclPriv: - * @ctxt: an XML parser context - * @inputchk: the input used for the current entity, needed for boundary checks -+ * @depth: the level of recursion - * - * parse the declaration for a Mixed Element content - * The leading '(' and spaces have been skipped in xmlParseElementContentDecl -@@ -5788,12 +5795,20 @@ - * Returns the tree of xmlElementContentPtr describing the element - * hierarchy. - */ --xmlElementContentPtr --xmlParseElementChildrenContentDecl (xmlParserCtxtPtr ctxt, int inputchk) { -+static xmlElementContentPtr -+xmlParseElementChildrenContentDeclPriv(xmlParserCtxtPtr ctxt, int inputchk, -+ int depth) { - xmlElementContentPtr ret = NULL, cur = NULL, last = NULL, op = NULL; - const xmlChar *elem; - xmlChar type = 0; - -+ if (((depth > 128) && ((ctxt->options & XML_PARSE_HUGE) == 0)) || -+ (depth > 2048)) { -+ xmlFatalErrMsgInt(ctxt, XML_ERR_ELEMCONTENT_NOT_FINISHED, -+"xmlParseElementChildrenContentDecl : depth %d too deep, use XML_PARSE_HUGE\n", -+ depth); -+ return(NULL); -+ } - SKIP_BLANKS; - GROW; - if (RAW == '(') { -@@ -5802,7 +5817,8 @@ - /* Recurse on first child */ - NEXT; - SKIP_BLANKS; -- cur = ret = xmlParseElementChildrenContentDecl(ctxt, inputid); -+ cur = ret = xmlParseElementChildrenContentDeclPriv(ctxt, inputid, -+ depth + 1); - SKIP_BLANKS; - GROW; - } else { -@@ -5934,7 +5950,8 @@ - /* Recurse on second child */ - NEXT; - SKIP_BLANKS; -- last = xmlParseElementChildrenContentDecl(ctxt, inputid); -+ last = xmlParseElementChildrenContentDeclPriv(ctxt, inputid, -+ depth + 1); - SKIP_BLANKS; - } else { - elem = xmlParseName(ctxt); -@@ -6045,6 +6062,44 @@ - } - - /** -+ * -+ * xmlParseElementChildrenContentDecl: -+ * @ctxt: an XML parser context -+ * @inputchk: the input used for the current entity, needed for boundary checks -+ * @depth: the level of recursion -+ * -+ * parse the declaration for a Mixed Element content -+ * The leading '(' and spaces have been skipped in xmlParseElementContentDecl -+ * -+ * [47] children ::= (choice | seq) ('?' | '*' | '+')? -+ * -+ * [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')? -+ * -+ * [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')' -+ * -+ * [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')' -+ * -+ * [ VC: Proper Group/PE Nesting ] applies to [49] and [50] -+ * TODO Parameter-entity replacement text must be properly nested -+ * with parenthesized groups. That is to say, if either of the -+ * opening or closing parentheses in a choice, seq, or Mixed -+ * construct is contained in the replacement text for a parameter -+ * entity, both must be contained in the same replacement text. For -+ * interoperability, if a parameter-entity reference appears in a -+ * choice, seq, or Mixed construct, its replacement text should not -+ * be empty, and neither the first nor last non-blank character of -+ * the replacement text should be a connector (| or ,). -+ * -+ * Returns the tree of xmlElementContentPtr describing the element -+ * hierarchy. -+ */ -+xmlElementContentPtr -+xmlParseElementChildrenContentDecl(xmlParserCtxtPtr ctxt, int inputchk) { -+ /* stub left for API/ABI compat */ -+ return(xmlParseElementChildrenContentDeclPriv(ctxt, inputchk, 1)); -+} -+ -+/** - * xmlParseElementContentDecl: - * @ctxt: an XML parser context - * @name: the name of the element being defined. -@@ -6080,7 +6135,7 @@ - tree = xmlParseElementMixedContentDecl(ctxt, inputid); - res = XML_ELEMENT_TYPE_MIXED; - } else { -- tree = xmlParseElementChildrenContentDecl(ctxt, inputid); -+ tree = xmlParseElementChildrenContentDeclPriv(ctxt, inputid, 1); - res = XML_ELEMENT_TYPE_ELEMENT; - } - SKIP_BLANKS; diff --git a/textproc/libxml2/patches/patch-ag b/textproc/libxml2/patches/patch-ag new file mode 100644 index 00000000000..4069997ff6c --- /dev/null +++ b/textproc/libxml2/patches/patch-ag @@ -0,0 +1,23 @@ +$NetBSD: patch-ag,v 1.7 2009/10/21 14:55:32 drochner Exp $ + +--- encoding.c.orig 2009-09-24 17:31:59.000000000 +0200 ++++ encoding.c +@@ -1376,6 +1376,9 @@ xmlInitCharEncodingHandlers(void) { + xmlRegisterCharEncodingHandlersISO8859x (); + #endif + #endif ++#ifdef __NetBSD__ /* XXX needed by selftest */ ++ xmlAddEncodingAlias("IBM273", "IBM-1141"); ++#endif + + } + +@@ -1454,6 +1457,8 @@ xmlGetCharEncodingHandler(xmlCharEncodin + case XML_CHAR_ENCODING_UTF16BE: + return(xmlUTF16BEHandler); + case XML_CHAR_ENCODING_EBCDIC: ++ handler = xmlFindCharEncodingHandler("IBM500"); ++ if (handler != NULL) return(handler); + handler = xmlFindCharEncodingHandler("EBCDIC"); + if (handler != NULL) return(handler); + handler = xmlFindCharEncodingHandler("ebcdic"); |