From: Felipe Pena Date: Tue, 1 Dec 2009 02:05:28 +0000 (+0000) Subject: - Fixed bug #49660 (libxml 2.7.3+ limits text nodes to 10MB). (Felipe) X-Git-Tag: php-5.2.12RC4~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1ca7c276389d7fc0990a7218c3c96ca72c7e1c18;p=php - Fixed bug #49660 (libxml 2.7.3+ limits text nodes to 10MB). (Felipe) - Added LIBXML_PARSEHUGE constant to overrides the maximum text size of a single text node when using libxml2.7.3+. (Kalle) [DOC] --- diff --git a/NEWS b/NEWS index 638376882b..8b1806e268 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,15 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? Dec 2009, PHP 5.2.12RC4 +- Added LIBXML_PARSEHUGE constant to overrides the maximum text size of a + single text node when using libxml2.7.3+. (Kalle) + - Improved fix for bug #50006 (Segfault caused by uksort()). (Stas) - Fixed bug #50266 (conflicting types for llabs). (Jani) - Fixed bug #50168 (FastCGI fails with wrong error on HEAD request to non-existant file). (Dmitry) +- Fixed bug #49660 (libxml 2.7.3+ limits text nodes to 10MB). (Felipe) 27 Nov 2009, PHP 5.2.12RC3 - Fixed break in the build chain introduced in 5.2.12RC2 (Jani) diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 930cf49307..bc4203b919 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -626,6 +626,9 @@ static PHP_MINIT_FUNCTION(libxml) #if LIBXML_VERSION >= 20621 REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL, CONST_CS | CONST_PERSISTENT); +#endif +#if LIBXML_VERSION >= 20703 + REGISTER_LONG_CONSTANT("LIBXML_PARSEHUGE", XML_PARSE_HUGE, CONST_CS | CONST_PERSISTENT); #endif REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG, CONST_CS | CONST_PERSISTENT); diff --git a/ext/soap/php_xml.c b/ext/soap/php_xml.c index 4bc14a46d3..30d34535e6 100644 --- a/ext/soap/php_xml.c +++ b/ext/soap/php_xml.c @@ -138,6 +138,9 @@ xmlDocPtr soap_xmlParseMemory(const void *buf, size_t buf_size) ctxt->sax->warning = NULL; ctxt->sax->error = NULL; /*ctxt->sax->fatalError = NULL;*/ +#if LIBXML_VERSION >= 20703 + ctxt->options |= XML_PARSE_HUGE; +#endif xmlParseDocument(ctxt); if (ctxt->wellFormed) { ret = ctxt->myDoc;