pattern.c


Log

Author Commit Date CI Message
Nick Wellnhofer ecb4c9fb 2023-12-18T21:32:49 misc: Improve error handling Remove calls to generic error handler or use stderr for - legacy deprecation warnings - nanohttp, nanoftp in standalone mode - memory debug messages Use xmlRaiseMemoryError. Remove TODO macro. Don't raise errors in xmlmodule.c.
Nick Wellnhofer e1560990 2023-12-10T15:30:47 pattern: Report malloc failures Fix places where malloc failures aren't reported. Introduce a new API function xmlPatternCompileSafe that returns a separate error code if a memory allocation fails.
Nick Wellnhofer 9b5cce7a 2023-09-21T00:44:50 include: Remove more unnecessary includes
Nick Wellnhofer 4e1c13eb 2023-09-18T14:45:10 debug: Remove debugging code This is barely useful these days and only clutters the code base.
Nick Wellnhofer 75693281 2023-07-21T14:50:30 malloc-fail: Fix memory leak in xmlCompileAttributeTest Found by OSS-Fuzz, see #344.
Nick Wellnhofer a509694c 2023-02-21T15:35:57 pattern: Merge identical branches Fixes #479.
Nick Wellnhofer ad338ca7 2022-09-01T01:18:30 Remove explicit integer casts Remove explicit integer casts as final operation - in assignments - when passing arguments - when returning values Remove casts - to the same type - from certain range-bound values The main motivation is that these explicit casts don't change the result of operations and only render UBSan's implicit-conversion checks useless. Removing these casts allows UBSan to detect cases where truncation or sign-changes occur unexpectedly. Document some explicit casts as truncating and add a few missing ones.
Nick Wellnhofer 4a8c71eb 2022-03-04T03:35:57 Remove DOCBparser This code has been broken and deprecated since version 2.6.0, released in 2003. Because of a bug in commit 961b535c, DOCBparser.c was never compiled since 2012. I couldn't find a Debian package using any of its symbols, so it seems safe to remove this module.
Nick Wellnhofer 346c3a93 2022-02-20T18:46:42 Remove elfgcchack.h The same optimization can be enabled with -fno-semantic-interposition since GCC 5. clang has always used this option by default.
Jared Yanovich 2a350ee9 2019-09-30T17:04:54 Large batch of typo fixes Closes #109.
Nick Wellnhofer 346febc6 2019-04-25T11:34:08 Fix call stack overflow in xmlFreePattern Since xmlFreePattern tried to free the next pattern recursively, its behavior is identical to xmlFreePatternList. Make it call xmlFreePatternList to avoid call stack overflows. Found by OSS-Fuzz.
Nick Wellnhofer 1f131f11 2017-05-24T16:36:33 Fix memory leak in pattern error path Found with libFuzzer and ASan.
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.
Patrick R. Gansterer 204f1f14 2012-05-10T20:24:00 undef ERROR if already defined
Nico Weber cedf84d3 2012-03-05T16:36:59 Fix -Wempty-body warning from clang clang recently grew a warning on `for (...);`. This patch fixes all two instances of this pattern in libxml. The changes don't modify the code semantic.
William M. Brack f8477005 2008-07-17T05:29:16 fix problem with xmlStreamPop when pattern includes a "." element (see * pattern.c: fix problem with xmlStreamPop when pattern includes a "." element (see discussion on libxslt list) svn path=/trunk/; revision=3752
Rob Richards 3108ba92 2007-12-06T10:08:52 fix crash from double free of name for bug #501760 * pattern.c: fix crash from double free of name for bug #501760 svn path=/trunk/; revision=3667
Kasimier T. Buchcik 6ed2eb47 2006-05-16T15:13:37 Applied patch from Rob Richards, fixing a potential memory leak in * xpath.c: Applied patch from Rob Richards, fixing a potential memory leak in xmlXPathTryStreamCompile(), when a list of namespaces was assigned to the XPath compilation context; here a new namespace list was created and passed to xmlPatterncompile(); but this list was not freed afterwards. Additionally we avoid now in xmlXPathTryStreamCompile() to compile the expression, if it has a colon - indicating prefixed name tests - and no namespace list was given. The streaming XPath mechanism needs a namespace list at compilation time (unlike normal XPath, where we can bind namespace names to prefixes at execution time). * pattern.c: Enhanced to use a string dict for local-names, ns-prefixes and and namespace-names. Fixed xmlStreamPushInternal() not to use string-pointer comparison if a dict is available; this won't work, since one does not know it the given strings originate from the same dict - and they normally don't do, since e.g. namespaces are hold on xmlNs->href. I think this would be worth an investigation: if we can add a @doc field to xmlNs and put the @href in to a additionan namespace dict hold in xmlDoc. Daniel will surely not like this idea :-) But evaluation of tons of elements/attributes in namespaces with xmlStrEqual() isn't the way we should go forever.
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 67952601 2006-01-05T15:29:44 upated the news regenerated the docs, preparing for release of 2.6.23 * NEWS configure.in libxml.spec.in testapi.c doc/*: upated the news regenerated the docs, preparing for release of 2.6.23 * pattern.c xmlschemas.c: fixed some comments Daniel
Kasimier T. Buchcik bb80f544 2006-01-05T14:44:45 Another fix to handle "foo//.": "foo" was not included in the resulting * pattern.c: Another fix to handle "foo//.": "foo" was not included in the resulting node-set.
Kasimier T. Buchcik 97258713 2006-01-05T12:30:43 Fixed bug #322928, reported by Erich Schubert: The bug was in pattern.c, * pattern.c xpath.c include/libxml/pattern.h: Fixed bug #322928, reported by Erich Schubert: The bug was in pattern.c, which is used for a tiny subset of xpath expression which can be evaluated in an optimized way. The doc-node was never considered when evaluating "//" expressions. Additionally, we fixed resolution to nodes of any type in pattern.c; i.e. a "//." didn't work yet, as it did select only element-nodes. Due to this issue the pushing of nodes in xpath.c needed to be adjusted as well.
Kasimier T. Buchcik 940ab0c6 2005-10-19T17:00:53 Fixed a potential memory leak in xmlSchemaCheckCSelectorXPath() when an * xmlschemas.c: Fixed a potential memory leak in xmlSchemaCheckCSelectorXPath() when an internal error occurs. Fixed setting of ctxt->err to the given error code in the parsing error functions. * pattern.c: Added internal xmlCompileIDCXPathPath() as a starting point for IDC XPath compilation; this and some other tiny changes fixes issues regarding whitespace in the expressions and IDC selector/field relevant restrictions of the subset of XPath. Fixed a missing blocking of attributes in xmlStreamPushInternal().
Kasimier T. Buchcik 65c2f1d7 2005-10-17T12:39:58 Silenced intel compiler warnings (reported by Kjartan Maraas, bug * tree.c pattern.c: Silenced intel compiler warnings (reported by Kjartan Maraas, bug #318517). * xmlschemas.c: The above changes in pattern.c revealed an inconsistency wrt IDCs: we now _only_ pop XPath states, if we really pushed them beforehand; this was previously not checked for the case when we discover an element node to be invalid wrt the content model. Fixed segfault in xmlSchemaGetEffectiveValueConstraint().
Kasimier T. Buchcik 27820270 2005-10-14T14:33:48 Fixed some identity-constraint issues: Restructured IDC node-tables * xmlschemas.c: Fixed some identity-constraint issues: Restructured IDC node-tables Allowed IDCs to resolve also to nodes of complex type with simple content. Added check for keyrefs with references to keyrefs. IDC target-nodes were interferring with IDC node-tables, since they used one list of entries only. I separated this one big list into 3 lists: 1 for IDC node-table entries, 1 for _duplicates_ of IDC node-table entries and 1 for IDC target-nodes. More code, but cleaner and it works at last. Keyrefs will fail to resolve to duplicate key/unique entries. I thought this was already working this way, but it didn't. The wording of the definition for [node table] in the spec can lead to a scenario, where keyrefs resolve perfectly, even if the relevant key-sequences of the referenced key/unique have duplicates in the subtree. Currently only Saxon 8.5.1 is dissallowing resolution to duplicate entries correctly - we will follow Saxon here. Removed some intel compiler warnings (reported by Kjartan Maraas, bug #318517). * pattern.c: Fixed an IDC-XPath problem when resolving to attributes.
Daniel Veillard f03a8cda 2005-09-04T12:01:57 fixing yet another pattern induced XPath bug #314282 reverted back last * pattern.c xpath.c include/libxml/pattern.h: fixing yet another pattern induced XPath bug #314282 * relaxng.c: reverted back last change it was seriously broken Daniel
Daniel Veillard f5812c31 2005-09-03T13:43:20 fixes a portability problem raised by C370 on Z/OS Daniel * pattern.c: fixes a portability problem raised by C370 on Z/OS Daniel
Daniel Veillard ed6c5497 2005-07-23T15:00:22 changed xmlPatterncompile signature to pass an int and not an enum since * pattern.c include/libxml/pattern.h: changed xmlPatterncompile signature to pass an int and not an enum since it can generate ABI compat troubles. * include/libxml/schematron.h schematron.c: adding the new schematron code, work in progress lots to be left and needing testing * include/libxml/xmlversion.h.in include/libxml/xmlwin32version.h.in Makefile.am configure.in: integration of schematron into the build * xpath.c include/libxml/xpath.h: adding flags to control compilation options right now just XML_XPATH_CHECKNS. Daniel
Kasimier T. Buchcik 627e9a93 2005-07-22T22:37:35 Changed xmlCompileStepPattern() and xmlCompileAttributeTest() to handle * pattern.c: Changed xmlCompileStepPattern() and xmlCompileAttributeTest() to handle the "xml" prefix without caring if the XML namespace was supplied by the user.
Kasimier T. Buchcik 8798b735 2005-07-08T19:58:37 Fixed evaluation of attributes. Actually only attribute at the first level * pattern.c: Fixed evaluation of attributes. Actually only attribute at the first level were evaluated (e.g. "@attr"); expression like "foo/@attr" always failed.
William M. Brack 537f1173 2005-06-14T22:02:59 adjusted last change to xmlCompilePathPattern, fixed one compilation * pattern.c: adjusted last change to xmlCompilePathPattern, fixed one compilation warning
Kasimier T. Buchcik 9ca11bfc 2005-06-14T19:24:47 Some changes/fixes to the streaming evaluation. A bit of support for * pattern.c: Some changes/fixes to the streaming evaluation. * xmlschemas.c: A bit of support for parsing the schema for schema. Fixed attribute derivation when the use is "prohibited" and was "optional". Fixed an attribute construction bug, a left-over from the time, where <complexContent>, <extension>, etc. where created as structs.
William M. Brack ea152c05 2005-06-09T18:12:28 Further enhancement for XPath streaming, consolidated with schemas usage * pattern.c, xpath.c, include/libxml/pattern.h: Further enhancement for XPath streaming, consolidated with schemas usage of pattern.c. Added a new enum xmlPatternFlags. * doc/*, testapi.c, elfgcchack.h: updated to reflect new enum. * test/XPath/tests/mixedpat, test/XPath/docs/mixed, result/XPath/mixedpat: added regression test for problems reported in bug306348
William M. Brack fbb619f4 2005-06-06T13:49:18 Enhanced xmlXPathRunStreamEval, fixed handling of depth/level for cases * xpath.c, pattern.c: Enhanced xmlXPathRunStreamEval, fixed handling of depth/level for cases like union operator (bug #306348 reported by Bob Stayton). Also enhanced several comments throughout pattern.c. * doc/apibuild.py: fixed problem in handling of 'signed' declaration. Rebuilt the docs.
Kasimier T. Buchcik 22678566 2005-05-09T16:01:05 Changed the XPath "." to resolve only on the first level for XML Schema * pattern.c: Changed the XPath "." to resolve only on the first level for XML Schema IDCs. This should not affect pattern-like resolution on every level.
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
Daniel Veillard 0e460da3 2005-03-30T22:47:10 another patch from Brent Hendricks to add new handlers with the various * python/generator.py python/libxml.py: another patch from Brent Hendricks to add new handlers with the various validity contexts * python/tests/Makefile.am python/tests/validDTD.py python/tests/validRNG.py python/tests/validSchemas.py: also added the regression tests he provided Daniel
Kasimier T. Buchcik 285ebabb 2005-03-04T18:04:59 Enabled IDC parsing and validation. Added xmlSchemaCopyValue to the API; * xmlschemas.c: Enabled IDC parsing and validation. * xmlschemastypes.c include/libxml/xmlschemastypes.h: Added xmlSchemaCopyValue to the API; this was done due to validation of default attributes against IDCs: since IDC keys consume the precomputed value, one needs a copy. * pattern.c: Enabled IDC support; this is currently done via calling xmlPatterncompile with a flag arg of 1.
Daniel Veillard fa1f77f2 2005-02-21T10:44:36 fixed remaining known bugs in the XPath streaming, and switched XPath to * pattern.c xpath.c: fixed remaining known bugs in the XPath streaming, and switched XPath to use it by default when possible Daniel
Kasimier T. Buchcik 2a0fdd91 2005-02-17T21:34:45 Some experimental addition for parsing of expressions and streamable * pattern.c pattern.h: Some experimental addition for parsing of expressions and streamable validation. Added xmlStreamPushAttr to the API.
Daniel Veillard 56de87ee 2005-02-16T00:22:29 fix the comment to describe the real return values lot of work on the * encoding.c: fix the comment to describe the real return values * pattern.c xpath.c include/libxml/pattern.h: lot of work on the patterns, pluggin in the XPath default evaluation, but disabled right now because it's not yet good enough for XSLT. pattern.h streaming API are likely to be changed to handle relative and absolute paths in the same expression. Daniel
Daniel Veillard 2b2e02d6 2005-02-05T23:20:22 fixed implementation for | added a specific regression test Daniel * pattern.c xmllint.c: fixed implementation for | * test/pattern/conj.* result/pattern/conj: added a specific regression test Daniel
Daniel Veillard f1f08cf8 2005-02-05T16:35:04 first implementation for | support Daniel * pattern.c: first implementation for | support Daniel
Daniel Veillard 0996a162 2005-02-05T14:00:10 fixed the namespaces support fixed xmlGetNodePath when namespaces are used * pattern.c: fixed the namespaces support * tree.c: fixed xmlGetNodePath when namespaces are used * result/pattern/multiple result/pattern/namespaces test/pattern/multiple.* test/pattern/namespaces.*: added more regression tests Daniel
Daniel Veillard d4301aba 2005-02-03T22:24:10 use the walker to test the patterns instead of the normal reader bug fixes * Makefile.am: use the walker to test the patterns instead of the normal reader * pattern.c xmllint.c: bug fixes in the train including fixing the stupid build break. Daniel
Daniel Veillard 364fbed5 2005-02-03T09:08:06 Fixed debug in pattern.c, Daniel
Daniel Veillard 9740d1d4 2005-02-01T16:21:43 more bug fixes for the XPath streaming code. Daniel * pattern.c: more bug fixes for the XPath streaming code. Daniel
Daniel Veillard 16ef800b 2005-01-31T00:27:50 bugfixes around the streaming patterns Daniel * pattern.c xmllint.c: bugfixes around the streaming patterns Daniel
Daniel Veillard f9d16914 2005-01-30T22:36:30 added first test for the patterns a few fixes Daniel * Makefile.am configure.in result/pattern/simple test/pattern/simple.*: added first test for the patterns * pattern.c xmllint.c: a few fixes Daniel
Daniel Veillard 8f2efae4 2005-01-30T18:44:30 Oops desabling debug, Daniel
Daniel Veillard 2fc6df95 2005-01-30T18:42:55 added a streaming pattern detector for a subset of XPath, should help * pattern.c include/libxml/pattern.h xmllint.c: added a streaming pattern detector for a subset of XPath, should help Kasimier for identity constraints * python/generator.py: applied Stephane Bidoul patch to find paths without breaking. Daniel
Daniel Veillard c7c9fb19 2005-01-12T21:04:15 fixed the fixed size array structure problem reported by Patrick Streule * pattern.c: fixed the fixed size array structure problem reported by Patrick Streule Daniel
Daniel Veillard 427174fb 2003-12-10T10:42:59 removed some compilation warnings Daniel * SAX2.c pattern.c: removed some compilation warnings Daniel
Daniel Veillard ffa7b7e2 2003-12-05T16:10:21 fixed the pattern interfaces but not yet the parser to handle the * pattern.c xmlreader.c xmllint.c include/libxml/pattern.h include/libxml/xmlreader.h: fixed the pattern interfaces but not yet the parser to handle the namespaces. * doc/examples/reader3.c doc/*: fixed the example, rebuilt the docs. Daniel
Daniel Veillard 1e90661b 2003-12-05T14:57:46 cleanup the make rebuild in doc, this include new directive to stop * globals.c xmlwriter.c doc/apibuild.py include/libxml/globals.h include/libxml/pattern.h include/libxml/schemasInternals.h include/libxml/xmlexports.h include/libxml/xmlwriter.h: cleanup the make rebuild in doc, this include new directive to stop documentation warnings * doc/* doc/html/*: rebuilt the docs * pattern.c xmlreader.c include/libxml/pattern.h include/libxml/xmlreader.h: adding xmlTextReaderPreservePattern() to save nodes while scanning the tree with the reader, cleanup the way element were freed, and xmlTextReaderPreserve() implementation, the API might change for namespace binding support when compiling patterns. * doc/examples/*: added reader3.c exposing the xmlTextReaderPreserve() Daniel
Daniel Veillard b3de70c2 2003-12-02T22:32:15 adding the pattern node selection code. Inheried in part from libxslt but * pattern.c include/libxml/pattern.h: adding the pattern node selection code. Inheried in part from libxslt but smaller. * Makefile.am configure.in include/libxml/xmlversion.h.in: integrated the pattern module, made it a configure time option * xmllint.c: added --pattern to test when doing --stream Daniel