parserInternals.c


Log

Author Commit Date CI Message
Nick Wellnhofer 3aca7f31 2017-08-21T13:06:29 Fix unwanted warnings when switching encodings Revert part of commit 46dc989 "Don't switch encoding for internal parameter entities" that caused spurious warnings. Fixes bug 786267.
Nick Wellnhofer 453dff1e 2017-06-19T17:55:20 Remove unnecessary calls to xmlPopInput It's enough if xmlPopInput is called from xmlSkipBlankChars. Since the replacement text of a parameter entity is surrounded with space characters, that's the only place where the replacement can end in a well-formed document. This is also required to get rid of the "blanks wrapper" hack.
Nick Wellnhofer aa267cd1 2017-06-18T23:29:51 Simplify handling of parameter entity references There are only two places where parameter entity references must be handled. For the internal subset in xmlParseInternalSubset. For the external subset or content from other external PEs in xmlSkipBlankChars. Make sure that xmlSkipBlankChars skips over sequences of PEs and whitespace. Rely on xmlSkipBlankChars instead of calling xmlParsePEReference directly when in the external subset or a conditional section. xmlParserHandlePEReference is unused now.
Nick Wellnhofer 46dc9890 2017-06-08T02:24:56 Don't switch encoding for internal parameter entities This is only needed for external entities. Trying to switch the encoding for internal entities could also cause a memory leak in recovery mode.
Nick Wellnhofer 79c8a6b1 2017-06-10T17:01:27 Print error messages for truncated UTF-8 sequences Before, truncated UTF-8 sequences at the end of a file were treated as EOF. Create an error message containing the offending bytes. xmlStringCurrentChar would also print characters from the input stream, not the string it's working on.
Nick Wellnhofer f9e7997e 2017-06-10T00:33:07 Reset parser input pointers on encoding failure Call xmlBufResetInput before bailing out if switching the encoding fails. Otherwise, the input pointers are left in an invalid state. This would typically lead to an internal error in xmlGROW but could also cause other unforeseen problems.
Nick Wellnhofer 45ce1ee3 2017-06-09T15:27:25 Add TODO comment in xmlSwitchEncoding It would be nice if we could recover from unsupported encodings in external entities.
Nick Wellnhofer 0db8dc9d 2017-06-07T16:07:33 Stop parser on unsupported encodings Otherwise, the push parser can loop infinitely in recover mode. Found with libFuzzer.
Pranjal Jumde 0bcd05c5 2016-03-01T15:18:04 Heap-based buffer overread in htmlCurrentChar For https://bugzilla.gnome.org/show_bug.cgi?id=758606 * parserInternals.c: (xmlNextChar): Add an test to catch other issues on ctxt->input corruption proactively. For non-UTF-8 charsets, xmlNextChar() failed to check for the end of the input buffer and would continuing reading. Fix this by pulling out the check for the end of the input buffer into common code, and return if we reach the end of the input buffer prematurely. * result/HTML/758606.html: Added. * result/HTML/758606.html.err: Added. * result/HTML/758606.html.sax: Added. * result/HTML/758606_2.html: Added. * result/HTML/758606_2.html.err: Added. * result/HTML/758606_2.html.sax: Added. * test/HTML/758606.html: Added test case. * test/HTML/758606_2.html: Added test case.
David Kilzer 4472c3a5 2016-05-13T15:13:17 Fix some format string warnings with possible format string vulnerability For https://bugzilla.gnome.org/show_bug.cgi?id=761029 Decorate every method in libxml2 with the appropriate LIBXML_ATTR_FORMAT(fmt,args) macro and add some cleanups following the reports.
David Kilzer d433ea6c 2016-05-18T14:52:59 Integer signed/unsigned type mismatch in xmlParserInputGrow() For https://bugzilla.gnome.org/show_bug.cgi?id=766635 * parserInternals.c: (xmlParserInputGrow): Change 'ret' type to 'int' to match the return type of xmlParserInputBufferGrow().
Daniel Veillard fdfeecc1 2015-11-20T15:07:38 Bug on creating new stream from entity sometimes the entity could have a lenght of 0, i.e. it wasn't parsed or used yet, and we ended up with an incoherent input state
Daniel Veillard afd27c21 2015-11-09T18:07:18 Avoid processing entities after encoding conversion failures For https://bugzilla.gnome.org/show_bug.cgi?id=756527 and was also raised by Chromium team in the past When we hit a convwersion failure when switching encoding it is bestter to stop parsing there, this was treated as a fatal error but the parser was continuing to process to extract more errors, unfortunately that makes little sense as the data is obviously corrupt and can potentially lead to unexpected behaviour.
Daniel Veillard c35af8b1 2014-06-11T16:59:16 Fixes for xmlInitParserCtxt let's make sure that parser options are updated too when a corrsponding global variable or other field of the context is set.
Daniel Veillard ff76eb28 2013-08-03T22:25:13 Clear up a potential NULL dereference https://bugzilla.gnome.org/show_bug.cgi?id=705399 if ctxt->node_seq.buffer is null then ctxt->node_seq.maximum ought to be zero but it's better to clarify the check in the code directly.
Daniel Veillard 23f05e0c 2013-02-19T10:21:49 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.
Daniel Veillard bf058dce 2013-02-13T18:19:42 Fix the flushing out of raw buffers on encoding conversions https://bugzilla.gnome.org/show_bug.cgi?id=692915 the new set of converting functions tried to limit the encoding conversion of the raw buffer to the consumption one to work in a more progressive fashion. Unfortunately this was bad for performances and led to errors on progressive parsing when a very large chunk was close to the end of the document. Fix the new internal function and switch back to the old way of converting. Fix another bug in the process.
Michael Wood fb27e2cd 2012-09-28T08:59:33 Fix spelling of "length".
Daniel Veillard f8e3db04 2012-09-11T13:26:36 Big space and tab cleanup Remove all space before tabs and space and tabs at end of lines.
Daniel Veillard 52d8ade7 2012-07-30T10:08:45 Introduce some default parser limits Those can be overrided by the XML_PARSE_HUGE option, they are just default limits for Name lenght, dictionary size limits and maximum amount of parser lookup. * include/libxml/parserInternals.h: define the limits * include/libxml/xmlerror.h: add a new error * parser.c parserInternals.c: implements the new limits
Daniel Veillard 61551a1e 2012-07-16T16:28:47 Cleanup function xmlBufResetInput() to set input from Buffer This was scattered in a number of modules, xmlParserInputPtr have usually their base, cur and end pointer set from an xmlBuf used as input. * buf.c buf.h: add a new function implementing this setup * parser.c HTMLparser.c catalog.c parserInternals.c xmlreader.c use the new function instead of digging into the buffer in all those modules
Daniel Veillard 768eb3b8 2012-07-16T14:19:49 Convert XML parser to the new input buffers The main changes are when the internal of the buffers structure were adressed directly, we now use routines coming from buf.h The routine xmlParserInputRead() which wasn't used anywhere is deprecated too.
Daniel Veillard 0d51cfeb 2012-05-15T11:18:40 Fix a race in xmlNewInputStream For https://bugzilla.gnome.org/show_bug.cgi?id=643148 Reported by Bill Clarke <llib@computer.org>, it used a global variable as a counter for the input id and this was not thread safe. To avoid the race without adding unneeded locking in the parser path, move the id to the parser context instead.
Eugene Pimenov 615904f5 2010-03-15T15:16:02 Switch the HTML parser to be non-recursive * HTMLparser.c: new htmlParseElementInternal non recursive, with htmlParseContentInternal and new function to handle node info and element end. * include/libxml/parser.h: add new stack for element info in parser context * parserInternals.c: fee element info stack
Daniel Veillard 7e385bd4 2009-08-26T11:38:49 566012 autodetected encoding and encoding conflict * encoding.c parser.c parserInternals.c: when we autodetect an encoding but it's actually not completely compatible with the one declared great care must be taken to not convert more than just the first line. Led to some refactoring, more private functions and a bit of cleanup.
Daniel Veillard 33c76c83 2009-08-25T11:30:34 Fix end of buffer char being split in XML parser * parserInternals.c: similar patch to previous, reset cur on GROW in xmlNextChar and xmlCurrentChar
Nick Wellnhofer 2f522dc6 2009-08-20T12:11:17 Fix xmlKeepBlanksDefault to not break indent * parserInternals.c: the old compatibility function xmlKeepBlanksDefault() should not reset xmlIndentTreeOutput to 0 because the default is 1
Daniel Veillard 4bf899bf 2008-08-20T17:04:30 fix for CVE-2008-3281 Daniel * include/libxml/parser.h include/libxml/entities.h entities.c parserInternals.c parser.c: fix for CVE-2008-3281 Daniel svn path=/trunk/; revision=3772
Daniel Veillard 87303e3c 2008-04-28T18:07:29 applied patch from Ashwin to avoid a potential double-free Daniel * parserInternals.c: applied patch from Ashwin to avoid a potential double-free Daniel svn path=/trunk/; revision=3741
Daniel Veillard b3edafd7 2008-01-11T08:00:57 avoid a warning on 64bits introduced earlier make more checking on the * parser.c: avoid a warning on 64bits introduced earlier * parserInternals.c: make more checking on the UTF-8 input Daniel svn path=/trunk/; revision=3676
Daniel Veillard 5addfebd 2006-10-17T20:32:22 applied patch from Marius Konitzer to avoid leaking in * parserInternals.c: applied patch from Marius Konitzer to avoid leaking in xmlNewInputFromFile() in case of HTTP redirection Daniel
Daniel Veillard 30e7607b 2006-03-09T14:13:55 a bunch of small cleanups based on coverity reports. Daniel * HTMLparser.c parser.c parserInternals.c pattern.c uri.c: a bunch of small cleanups based on coverity reports. Daniel
Daniel Veillard 6a0baa0c 2005-12-10T11:11:12 fixed a number of warnings shown by HP-UX compiler and reported by Rick * HTMLparser.c configure.in parserInternals.c runsuite.c runtest.c testapi.c xmlschemas.c xmlschemastypes.c xmlstring.c: fixed a number of warnings shown by HP-UX compiler and reported by Rick Jones Daniel
Daniel Veillard c19d535e 2005-11-17T13:12:16 removed unreachable code pointed out by Oleksandr Kononenko, fixes bug * parserInternals.c: removed unreachable code pointed out by Oleksandr Kononenko, fixes bug #321695 Daniel
Daniel Veillard 6e84bb28 2005-10-26T09:00:29 fix a problem in some error case on Solaris when passed a NULL filename, * parserInternals.c: fix a problem in some error case on Solaris when passed a NULL filename, pointed by Albert Chin. Daniel
Daniel Veillard 2e7598cb 2005-09-02T12:28:34 avoid passing a char[] as snprintf first argument. implemented * encoding.c parserInternals.c: avoid passing a char[] as snprintf first argument. * threads.c include/libxml/threads.h: implemented xmlIsThreadsEnabled() based on Andrew W. Nosenko idea. * doc/* elfgcchack.h: regenerated the API Daniel
Daniel Veillard 75e389d4 2005-07-29T22:02:24 more cleanups based on sparse reports, added "make sparse" Daniel * Makefile.am globals.c parserInternals.c xmlreader.c xmlunicode.c xmlwriter.c: more cleanups based on sparse reports, added "make sparse" Daniel
Daniel Veillard 304e78c6 2005-07-03T16:19:41 fix bug raised by zamez on IRC regenerated, seems to pop-up leaks in new * parserInternals.c: fix bug raised by zamez on IRC * testapi.c: regenerated, seems to pop-up leaks in new tree functions * tree.c: added comments missing. * doc/*: regenerated Daniel
Daniel Veillard 5d4644ef 2005-04-01T13:11:58 revamped the elfgcchack.h format to cope with gcc4 change of aliasing * doc/apibuild.py doc/elfgcchack.xsl: revamped the elfgcchack.h format to cope with gcc4 change of aliasing allowed scopes, had to add extra informations to doc/libxml2-api.xml to separate the header from the c module source. * *.c: updated all c library files to add a #define bottom_xxx and reimport elfgcchack.h thereafter, and a bit of cleanups. * doc//* testapi.c: regenerated when rebuilding the API Daniel
Aleksey Sanin 8fdc32ab 2005-01-05T15:37:55 fixing col information in xmlParserInput and propagating column into xmlError
William M. Brack 1d8c9b29 2004-12-25T10:14:57 fixed to skip (if necessary) the BOM for encoding 'utf-16'. Completes the * parserInternals.c: fixed to skip (if necessary) the BOM for encoding 'utf-16'. Completes the fix for bug #152286. * tree.c, parser.c: minor warning cleanup, no change to logic
Daniel Veillard a521d287 2004-11-09T14:59:59 better handling of conditional features more testing on parser contexts * gentest.py testapi.c: better handling of conditional features * HTMLparser.c SAX2.c parserInternals.c xmlwriter.c: more testing on parser contexts closed leaks, error messages Daniel
Daniel Veillard f2a36f98 2004-11-08T17:55:01 more types. more fixes Daniel * testapi.c: more types. * parserInternals.c xpath.c: more fixes Daniel
Daniel Veillard 2a4fb5ac 2004-11-08T14:02:18 more coverage more fixes Daniel * gentest.py testapi.c: more coverage * SAX2.c parser.c parserInternals.c: more fixes Daniel
Daniel Veillard 42595323 2004-11-08T10:52:06 more types, more coverage more problems fixed Daniel * gentest.py testapi.c: more types, more coverage * parser.c parserInternals.c relaxng.c valid.c xmlIO.c xmlschemastypes.c: more problems fixed Daniel
Daniel Veillard ce682bc2 2004-11-05T17:22:25 autogenerate a minimal NULL value sequence for unknown pointer types This * gentest.py testapi.c: autogenerate a minimal NULL value sequence for unknown pointer types * HTMLparser.c SAX2.c chvalid.c encoding.c entities.c parser.c parserInternals.c relaxng.c valid.c xmlIO.c xmlreader.c xmlsave.c xmlschemas.c xmlschemastypes.c xmlstring.c xpath.c xpointer.c: This uncovered an impressive amount of entry points not checking for NULL pointers when they ought to, closing all the open gaps. Daniel
Daniel Veillard 36e5cd50 2004-11-02T14:52:23 adding xmlMemBlocks() work on generator of an automatic API regression * xmlmemory.c include/libxml/xmlmemory.h: adding xmlMemBlocks() * Makefile.am gentest.py testapi.c: work on generator of an automatic API regression test tool. * SAX2.c nanoftp.c parser.c parserInternals.c tree.c xmlIO.c xmlstring.c: various API hardeing changes as a result of running teh first set of automatic API regression tests. * test/slashdot16.xml: apparently missing from CVS, commited it Daniel
Daniel Veillard eff45a92 2004-10-29T12:10:55 register xmlSchemaSetValidErrors, patch from Brent Hendricks in the * python/libxml.c: register xmlSchemaSetValidErrors, patch from Brent Hendricks in the mailing-list * include/libxml/valid.h HTMLparser.c SAX2.c valid.c parserInternals.c: fix #156626 and more generally how to find out if a validation contect is part of a parsing context or not. This can probably be improved to make 100% sure that vctxt->userData is the parser context too. It's a bit hairy because we can't change the xmlValidCtxt structure without breaking the ABI since this change xmlParserCtxt information indexes. Daniel
Daniel Veillard 29b17482 2004-08-16T00:39:03 small typo pointed out by Mike Hommey slightly improved the --c14n * xmlIO.c: small typo pointed out by Mike Hommey * doc/xmllint.xml, xmllint.html, xmllint.1: slightly improved the --c14n description, c.f. #144675 . * nanohttp.c nanoftp.c: applied a first simple patch from Mike Hommey for $no_proxy, c.f. #133470 * parserInternals.c include/libxml/parserInternals.h include/libxml/xmlerror.h: cleanup to avoid 'error' identifier in includes # * parser.c SAX2.c debugXML.c include/libxml/parser.h: first version of the inplementation of parsing within the context of a node in the tree #142359, new function xmlParseInNodeContext(), added support at the xmllint --shell level as the "set" function * test/scripts/set* result/scripts/* Makefile.am: extended the script based regression tests to instrument the new function. Daniel
Daniel Veillard 3671190b 2004-02-11T13:25:26 added xmlByteConsumed() interface updated the benchmark rebuilt the docs * parserInternals.c xmlIO.c encoding.c include/libxml/parser.h include/libxml/xmlIO.h: added xmlByteConsumed() interface * doc/*: updated the benchmark rebuilt the docs * python/tests/Makefile.am python/tests/indexes.py: added a specific regression test for xmlByteConsumed() * include/libxml/encoding.h rngparser.c tree.c: small cleanups Daniel
Daniel Veillard 5bb9ccd5 2004-02-09T12:39:02 remove the warning on the 2001 namespace remove some warnings when * xinclude.c: remove the warning on the 2001 namespace * parser.c parserInternals.c xpath.c: remove some warnings when compiling with MSVC6 * nanohttp.c: applied a patch when using _WINSOCKAPI_ Daniel
Daniel Veillard 157fee01 2003-10-31T10:36:03 previous fix for #124044 was broken, correct fix provided. fix * python/libxml.c: previous fix for #124044 was broken, correct fix provided. * HTMLparser.c parser.c parserInternals.c xmlIO.c: fix xmlStopParser() and the error handlers to address #125877 Daniel
Daniel Veillard e8039dfe 2003-10-27T11:25:13 make sure we report errors if xmlNewInputFromFile() fails. avoid using * libxml.h parserInternals.c xmlIO.c: make sure we report errors if xmlNewInputFromFile() fails. * xmlreader.c: avoid using _private for the node or document elements. Daniel
Daniel Veillard a840b692 2003-10-19T13:35:37 Fixed the HTTP<->parser interraction, which should fix 2 long standing * include/libxml/nanohttp.h include/libxml/parserInternals.h include/libxml/xmlIO.h nanohttp.c parserInternals.c xmlIO.c: Fixed the HTTP<->parser interraction, which should fix 2 long standing bugs #104790 and #124054 , this also fix the fact that HTTP error code (> 400) should not generate data, we usually don't want to parse the HTML error information instead of the resource looked at. Daniel
William M. Brack 68aca051 2003-10-11T15:22:13 new files for a different method for doing range validation of character * genChRange.py, chvalid.def, chvalid.c, include/libxml/chvalid.h: new files for a different method for doing range validation of character data. * Makefile.am, parserInternals.c, include/libxml/Makefile.am, include/libxml/parserInternals.h: modified for new range method. * catalog.c: small enhance for warning message (using one of the new range routines)
Daniel Veillard 659e71ec 2003-10-10T14:10:40 Setting up the framework for structured error reporting, touches a lot of * HTMLparser.c c14n.c catalog.c error.c globals.c parser.c parserInternals.c relaxng.c valid.c xinclude.c xmlIO.c xmlregexp.c xmlschemas.c xpath.c xpointer.c include/libxml/globals.h include/libxml/parser.h include/libxml/valid.h include/libxml/xmlerror.h: Setting up the framework for structured error reporting, touches a lot of modules, but little code now the error handling trail has been cleaned up. Daniel
Daniel Veillard ce9457f3 2003-10-05T21:33:18 more cleanup of error handling in parserInternals, sharing the routine for * parserInternals.c parser.c valid.c include/libxml/parserInternals.h: more cleanup of error handling in parserInternals, sharing the routine for memory errors. Daniel
Daniel Veillard f403d298 2003-10-05T13:51:35 more code cleanup, especially around error messages, the HTML parser has * HTMLparser.c Makefile.am legacy.c parser.c parserInternals.c include/libxml/xmlerror.h: more code cleanup, especially around error messages, the HTML parser has now been upgraded to the new handling. * result/HTML/*: a few changes in the resulting error messages Daniel
Daniel Veillard 2b8c4a15 2003-10-02T22:28:19 changed 'make tests' to use a concise output, scrolling to see where thing * Makefile.am: changed 'make tests' to use a concise output, scrolling to see where thing broke wasn't pleasant * configure.in: some beta4 preparation, but not ready yet * error.c globals.c include/libxml/globals.h include/libxml/xmlerror.h: new error handling code, last error informations are stored in the parsing context or a global variable, new APIs to handle the xmlErrorPtr type. * parser.c parserInternals.c valid.c : started migrating to the new error handling code, it's a royal pain. * include/libxml/parser.h include/libxml/parserInternals.h: moved the definition of xmlNewParserCtxt() * parser.c: small potential buffer access problem in push code provided by Justin Fletcher * result/*.sax result/VC/PENesting* result/namespaces/* result/valid/*.err: some error messages were sligthly changed. Daniel
Daniel Veillard 73b013fc 2003-09-30T12:36:01 added a new configure option --with-push, some cleanups, chased code size * HTMLparser.c Makefile.am configure.in legacy.c parser.c parserInternals.c testHTML.c xmllint.c include/libxml/HTMLparser.h include/libxml/parser.h include/libxml/parserInternals.h include/libxml/xmlversion.h.in: added a new configure option --with-push, some cleanups, chased code size anomalies. Now a library configured --with-minimum is around 150KB, sounds good enough. Daniel
Daniel Veillard 8127390f 2003-09-30T00:43:48 added 2 new configure option: --with-reader --with-sax1 to allow removing * Makefile.am SAX.c SAX2.c configure.in globals.c parser.c parserInternals.c testReader.c testSAX.c xmlIO.c xmllint.c xmlreader.c example/gjobread.c include/libxml/xmlversion.h.in: added 2 new configure option: --with-reader --with-sax1 to allow removing the reader or non-xmlReadxxx() interfaces. Daniel
Daniel Veillard 4432df23 2003-09-28T18:58:27 cleanup, creating a new legacy.c module, made sure make tests ran in * Makefile.am: cleanup, creating a new legacy.c module, made sure make tests ran in reduced conditions * SAX.c SAX2.c configure.in entities.c globals.c parser.c parserInternals.c tree.c valid.c xlink.c xmlIO.c xmlcatalog.c xmlmemory.c xpath.c xmlmemory.c include/libxml/xmlversion.h.in: increased the modularization, allow to configure out validation code and legacy code, added a configuration option --with-minimum compiling only the mandatory code which then shrink to 200KB. Daniel
Daniel Veillard 11476b4e 2003-09-26T14:51:39 fixed a backward compatibility problem when formatting "deprecated SAXv1 * parserInternals.c: fixed a backward compatibility problem when formatting "deprecated SAXv1 function ignorableWhitespace" could be reproduced by xmllint --format Daniel
Daniel Veillard 092643b5 2003-09-25T14:29:29 preparing a beta3 solving the ABI problems make sure the global variables * configure.in: preparing a beta3 solving the ABI problems * globals.c parser.c parserInternals.c testHTML.c HTMLparser.c SAX.c include/libxml/globals.h include/libxml/SAX.h: make sure the global variables for the default SAX handler are V1 ones to avoid ABI compat problems. * xmlreader.c: cleanup of uneeded code * hash.c: fix a comment Daniel
Daniel Veillard a66b1d1a 2003-09-17T20:54:38 avoid a leak with previous patch Daniel * parserInternals.c: avoid a leak with previous patch Daniel
Daniel Veillard 8d8bf2c5 2003-09-17T19:36:25 small fix from Rob Richards for input filename fixes for --repeat and * parserInternals.c: small fix from Rob Richards for input filename * xmllint.c: fixes for --repeat and --memory/--stream for speed tests * xmlIO: adding a guard in one function Daniel
Daniel Veillard 9f7eb0bb 2003-09-17T10:26:25 started messing seriously with per-document dict and element and attribute * SAX2.c parser.c parserInternals.c xmlreader.c: started messing seriously with per-document dict and element and attribute nodes reuse in the xmlReader. This seems to lead to an interesting speedup of the xmlReader already. Daniel
Daniel Veillard bdbe0d4e 2003-09-14T19:56:14 factoring of more error handling code, serious size reduction and more * parser.c include/libxml/xmlerror.h: factoring of more error handling code, serious size reduction and more lisibility of the resulting code. * parserInternals.c parser.c include/libxml/parserInternals.h include/libxml/parser.h: changing the way VC:Proper Group/PE Nesting checks are done, use a counter for entities. Entities where freed and reallocated at the same address failing the check. * tree.c: avoid a warning * result/valid/* result/VC/*: this slightly changes some validation error messages. Daniel
Daniel Veillard 877a7bd6 2003-09-13T00:16:32 removing the broken pseudo SGML DocBook parser code. Daniel * Makefile.am DOCBparser.c parserInternals.c testDocbook.c xmllint.c doc/xmllint.xml doc/xmllint.1: removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard 3b7840cd 2003-09-11T23:42:01 adding namespace checkings while making sure they still parse as * parser.c parserInternals.c tree.c include/libxml/parser.h include/libxml/xmlerror.h: adding namespace checkings while making sure they still parse as wellformed documents. Add an nsWellFormed status report to the context, and provide new appropriate error codes. * Makefile.am result/namespaces/* test/namespaces/*: add specific regression testing for the new namespace support * test/att5 result/noent/att5 result/att5 result/att5.sax: add more coverage for the attribute parsing and normalization code. Daniel
Daniel Veillard 8e36e6a0 2003-09-10T10:50:59 2.6.0beta1 changes Fixing attribute normalization, might not be totally * configure.in doc/* : 2.6.0beta1 changes * SAX2.c hash.c parser.c parserInternals.c: Fixing attribute normalization, might not be totally fixed but this should make sure SAX event provide the right strings for attributes except entities for which libxml2 is different by default This should fix #109564 * result/attrib.xml.sax result/ent3.sax result/p3p.sax: minor changes in attribute callback values * result/c14n/with-comments/example-4 result/c14n/without-comments/example-4: this also fixes a subtle bug in the canonicalization tests. Daniel
Daniel Veillard e57ec790 2003-09-10T10:50:59 Time to commit 3 days of work rewriting the parser internal, fixing bugs and migrating to SAX2 interface by default. There is some work letf TODO, like namespace validation and attributes normalization (this break C14N right now) * Makefile.am: fixed the test rules * include/libxml/SAX2.h include/libxml/parser.h include/libxml/parserInternals.h SAX2.c parser.c parserInternals.c: changing the parser, migrating to SAX2, adding new interface to switch back to SAX1 or initialize a SAX block for v1 or v2. Most of the namespace work is done below SAX, as well as attribute defaulting * globals.c: changed initialization of the default SAX handlers * hash.c tree.c include/libxml/hash.h: added QName specific handling * xmlIO.c: small fix * xmllint.c testSAX.c: provide a --sax1 switch to test the old version code path * result/p3p result/p3p.sax result/noent/p3p test/p3p: the new code pointed out a typo in a very old test namespace Daniel
Daniel Veillard 0fb18935 2003-09-07T09:14:37 allow to give -1 for undefined length in lookups first round of work on * dict.c: allow to give -1 for undefined length in lookups * include/libxml/parser.h parser.c parserInternals.c testSAX.c: first round of work on the new SAX2 interfaces, the API will change but commiting before changing for historical reference. Daniel
Igor Zlatkovic d37c1394 2003-08-28T10:34:33 added few casts to shut the compiler warnings
Daniel Veillard 6155d8aa 2003-08-19T15:01:28 optimization when freeing hash tables. some tuning of buffer allocations * dict.c hash.c: optimization when freeing hash tables. * parser.c xmlIO.c include/libxml/tree.h: some tuning of buffer allocations * parser.c parserInternals.c include/libxml/parser.h: keep a single allocated block for all the attributes callbacks, avoid useless malloc()/free() * tree.c: do not realloc() when growing a buffer if the buffer ain't full, malloc/memcpy/free avoid copying memory. Daniel
Daniel Veillard 2fdbd32d 2003-08-18T12:15:38 new dictionary module to keep a single instance of the names used by the * dict.c include/libxml/dict.h Makefile.am include/libxml/Makefile.am: new dictionary module to keep a single instance of the names used by the parser * DOCBparser.c HTMLparser.c parser.c parserInternals.c valid.c: switched all parsers to use the dictionary internally * include/libxml/HTMLparser.h include/libxml/parser.h include/libxml/parserInternals.h include/libxml/valid.h: Some of the interfaces changed as a result to receive or return "const xmlChar *" instead of "xmlChar *", this is either insignificant from an user point of view or when the returning value changed, those function are really parser internal methods that no user code should really change * doc/libxml2-api.xml doc/html/*: the API interface changed and the docs were regenerated Daniel
William M. Brack 78637da0 2003-07-31T14:47:38 fixing bug 118559
Daniel Veillard a6874ca4 2003-07-29T16:47:24 applied Peter Jacobi encoding cleanup patch, and also avoided a possible * parser.c parserInternals.c tree.c: applied Peter Jacobi encoding cleanup patch, and also avoided a possible memory leak Daniel
Daniel Veillard 2dcb937a 2003-07-16T21:18:19 patch from Dodji Seketeli about UTF16 BOM when using the push XML parser. * parserInternals.c: patch from Dodji Seketeli about UTF16 BOM when using the push XML parser. * result/utf16bom.xml result/noent/utf16bom.xml test/utf16bom.xml: added the test to the regression suite. Daniel
Daniel Veillard 0e0f37a3 2003-05-20T12:22:41 fixing Red Hat bug #91013 where xmllint was accepting an improper UTF8 * parserInternals.c: fixing Red Hat bug #91013 where xmllint was accepting an improper UTF8 sequence Daniel
Daniel Veillard a76fe5ca 2003-04-24T16:06:47 integrated the Out Of Memory test from Havoc Pennington #109368 a lot of * Makefile.am testOOM.c testOOMlib.[ch] : integrated the Out Of Memory test from Havoc Pennington #109368 * SAX.c parser.c parserInternals.c tree.c uri.c valid.c xmlmemory.c xmlreader.c xmlregexp.c include/libxml/tree.h include/libxml/parser.h: a lot of memory allocation cleanups based on the results of the OOM testing * check-relaxng-test-suite2.py: seems I forgot to commit the script. Daniel
Daniel Veillard c4f65abe 2003-04-21T23:07:45 updated a bit fixed the comment, threads now default to on fixed an * TODO: updated a bit * configure.in: fixed the comment, threads now default to on * parserInternals.c: fixed an erroneous xmlMallocAtomic() call Daniel
Daniel Veillard a880b124 2003-04-21T21:36:41 a lot of performance work especially the speed of streaming through the * globals.c libxml.h parser.c parserInternals.c tree.c xmllint.c xmlreader.c include/libxml/parser.h: a lot of performance work especially the speed of streaming through the reader and push interface. Some thread related optimizations. Nearly doubled the speed of parsing through the reader. Daniel
Daniel Veillard 3c908dca 2003-04-19T00:07:51 added xmlMallocAtomic() to be used when allocating blocks which do not * DOCBparser.c HTMLparser.c c14n.c catalog.c encoding.c globals.c nanohttp.c parser.c parserInternals.c relaxng.c tree.c uri.c xmlmemory.c xmlreader.c xmlregexp.c xpath.c xpointer.c include/libxml/globals.h include/libxml/xmlmemory.h: added xmlMallocAtomic() to be used when allocating blocks which do not contains pointers, add xmlGcMemSetup() and xmlGcMemGet() to allow registering the full set of functions needed by a garbage collecting allocator like libgc, ref #109944 Daniel
Daniel Veillard 77a90a7f 2003-03-22T00:04:05 patch from johan@evenhuis.nl for #107937 fixing some line counting * HTMLparser.c parser.c parserInternals.c: patch from johan@evenhuis.nl for #107937 fixing some line counting problems, and some other cleanups. * result/HTML/: this result in some line number changes Daniel
Daniel Veillard a9b66d00 2002-12-11T14:23:49 new API building Python script, does the C parsing directly, generates a * doc/apibuild.py doc/libxml2-api.xml doc/Makefile.am: new API building Python script, does the C parsing directly, generates a better API description including structure fieds defs and enums. Still a couple of bugs, but good enough for the python wrappers now. * DOCBparser.c SAX.c nanohttp.c parser.c parserInternals.c tree.c valid.c xmlIO.c xmlmemory.c xmlreader.c xmlregexp.c xmlschemas.c include/libxml/schemasInternals.h include/libxml/tree.h: more cleanup based on the python analysis script reports. * libxml.spec.in: make sure the API XML description is part of the devel package. Daniel
Daniel Veillard 01c13b5b 2002-12-10T15:19:08 code cleanup, especially the function comments. fixed a small bug when * DOCBparser.c HTMLparser.c c14n.c debugXML.c encoding.c hash.c nanoftp.c nanohttp.c parser.c parserInternals.c testC14N.c testDocbook.c threads.c tree.c valid.c xmlIO.c xmllint.c xmlmemory.c xmlreader.c xmlregexp.c xmlschemas.c xmlschemastypes.c xpath.c: code cleanup, especially the function comments. * tree.c: fixed a small bug when freeing nodes which are XInclude ones. Daniel
Daniel Veillard d2ff0394 2002-11-22T12:28:38 fixing bug #99190 when UTF8 document are parsed using the progressive * parserInternals.c: fixing bug #99190 when UTF8 document are parsed using the progressive parser and the end of the chunk is in the middle of an UTF8 multibyte character. Daniel
William M. Brack 8b2c7f10 2002-11-22T05:07:29 fixed thread problem
Daniel Veillard d076a20e 2002-11-20T13:28:31 fixed #99082 for xi:include encoding="..." support on text includes. added * xinclude.c parserInternals.c encoding.c: fixed #99082 for xi:include encoding="..." support on text includes. * result/XInclude/tstencoding.xml test/XInclude/docs/tstencoding.xml test/XInclude/ents/isolatin.txt : added a specific regression test * python/generator.py python/libxml2class.txt: fixed the generator the new set of comments generated for doc/libxml2-api.xml were breaking the python generation. Daniel
Daniel Veillard dad3f680 2002-11-17T16:47:27 preparing release 2.4.27 updated and rebuilt the docs try to make sure the * configure.in: preparing release 2.4.27 * doc/* : updated and rebuilt the docs * doc/Makefile.am libxml.spec.in: try to make sure the tutorial and all the docs are actually packaged and in the final RPMs * parser.c parserInternals.c include/libxml/parser.h: restore xmllint --recover feature. Daniel
Daniel Veillard 8606bbbc 2002-11-12T12:36:52 fixed the initialization of the SAX structure which was breaking xsltproc * parserInternals.c: fixed the initialization of the SAX structure which was breaking xsltproc * xpath.c: patch from Petr Pajas for CDATA nodes * tree.c: patch from Petr Pajas improving xmlGetNodePath() * parser.c include/libxml/parser.h: patch from Peter Jones removing a leak in xmlSAXParseMemory() and adding the function xmlSAXParseMemoryWithData() Daniel
Daniel Veillard e645e8c1 2002-10-22T17:35:37 Applied the VMS update patch from Craig A. Berry update Daniel * vms/build_libxml.com vms/config.vms vms/readme.vms include/libxml/parser.h include/libxml/parserInternals.h include/libxml/tree.h include/libxml/xmlIO.h HTMLparser.c catalog.c debugXML.c parser.c parserInternals.c tree.c triodef.h trionan.c uri.c xmlIO.c xpath.c: Applied the VMS update patch from Craig A. Berry * doc/*.html: update Daniel
Daniel Veillard 3487c8d9 2002-09-05T11:33:25 get rid of all the perror() calls made in the library execution paths. * DOCBparser.c HTMLparser.c c14n.c entities.c list.c parser.c parserInternals.c xmlIO.c: get rid of all the perror() calls made in the library execution paths. This should fix both #92059 and #92385 Daniel
Daniel Veillard fdc9156a 2002-07-01T21:52:03 applied patch from Richard Jinks for the namespace axis + fixed a memory * xpath.c: applied patch from Richard Jinks for the namespace axis + fixed a memory error. * parser.c parserInternals.c: applied patches from Peter Jacobi removing ctxt->token for good. * xmlschemas.c xmlschemastypes.c: fixed a few memory leaks popped out by the regression tests. * Makefile.am: patch for threads makefile from Gary Pennington Daniel
Daniel Veillard 561b7f88 2002-03-20T21:55:57 dohh I really didn't intended to commit this test version :-( Daniel * HTMLparser.c error.c parser.c parserInternals.c tree.c xmlIO.c include/libxml/tree.h: dohh I really didn't intended to commit this test version :-( Daniel
Daniel Veillard e50f3b5d 2002-03-20T19:24:21 I wanted to see the real speed at the SAX interface after a little too * testSAX.c: I wanted to see the real speed at the SAX interface after a little too many Ximianer started complaining about the parser speed. added a --quiet option: paphio:~/XML -> ls -l db100000.xml -rw-rw-r-- 1 veillard www 20182040 Mar 20 10:30 db100000.xml paphio:~/XML -> time ./testSAX --quiet db100000.xml 3200006 callbacks generated real 0m1.270s Which means 16MBytes/s and 3Mcallback/s Daniel
Daniel Veillard 34ce8bec 2002-03-18T19:37:11 preparing 2.4.18 updated and rebuilt the web site implement the new * configure.in: preparing 2.4.18 * doc/*: updated and rebuilt the web site * *.c libxml.h: implement the new IN_LIBXML scheme discussed with the Windows and Cygwin maintainers. * parser.c: humm, changed the way the SAX parser work when xmlSubstituteEntitiesDefault(1) is set, it will then do the entity registration and loading by itself in case the user provided SAX getEntity() returns NULL. * testSAX.c: added --noent to test the behaviour. Daniel
Daniel Veillard 878eab04 2002-02-19T13:46:09 more validation test fixups added duration info for the tests Daniel * SAX.c parser.c valid.c: more validation test fixups * check-xml-test-suite.py: added duration info for the tests Daniel
Daniel Veillard 4a7ae503 2002-02-18T19:18:17 isExtender was missing a char % are acceptable in the internal subset if * xmlInternald.c: isExtender was missing a char * parser.c include/libxml/parser.h: % are acceptable in the internal subset if within a PUBLIC ID Daniel