test/XPath/tests


Log

Author Commit Date CI Message
Nick Wellnhofer c2f4da1a 2017-05-21T22:08:50 Improve XPath predicate and filter evaluation Consolidate code paths evaluating XPath predicates and filters. Don't push context node on stack when evaluating predicates. I have no idea why this was done. It seems completely useless and trying to pop the context node from a corrupted stack has already caused security issues. Filter nodesets in-place and don't create node sets with NULL gaps which allows to simplify merging a great deal. Simply move matched nodes backward and create a compact node set. Merge xmlXPathCompOpEvalPositionalPredicate into xmlXPathCompOpEvalPredicate.
Nick Wellnhofer 5af594d8 2017-10-07T14:54:45 Fix comparison of nodesets to strings Fix two bugs in xmlXPathNodeValHash which could lead to errors when comparing nodesets to strings: - Only use contents of text nodes to compute the hash for element nodes. Comments, PIs, and other node types don't affect the string-value and must be ignored. - Reset `string` to NULL for node types other than text. Reported by Aleksei on the mailing list: https://mail.gnome.org/archives/xml/2017-September/msg00016.html
Nick Wellnhofer a58331a6 2017-05-29T21:02:21 Check for overflow in xmlXPathIsPositionalPredicate Avoid undefined behavior when casting from double to int. Found with afl-fuzz and UBSan.
Nick Wellnhofer 40f58521 2017-05-26T20:16:35 Fix axis traversal from attribute and namespace nodes When traversing the "preceding" axis from an attribute node, we must first go up to the attribute's containing element. Otherwise, text children of other attributes could be returned. This made it possible to hit a code path in xmlXPathNextAncestor which contained another bug: The attribute node was initialized with the context node instead of the current node. Normally, this code path is only hit via xmlXPathNextAncestorOrSelf in which case the current and context node are the same. The combination of the two bugs could result in an infinite loop, found with libFuzzer. Traversing the "following" and the "preceding" axis from namespace nodes should be handled similarly. This wasn't supported at all previously.
Nick Wellnhofer 6eb0894a 2016-05-05T16:49:00 Fix memory leak with XPath namespace nodes Set hasNsNodes to 1 when adding namespace nodes via XP_TEST_HIT.
Nick Wellnhofer 82b73039 2016-04-30T17:53:10 Fix namespace axis traversal When the namespace axis is traversed in "toBool" mode, the traversal can exit early, before visiting all nodes. In this case, the XPath context still contains a non-NULL tmpNsList. This means that - the check when to start a new traversal was wrong and - the tmpNsList could be leaked. Fixes bug #750037 and, by accident, bug #756075: https://bugzilla.gnome.org/show_bug.cgi?id=750037 https://bugzilla.gnome.org/show_bug.cgi?id=756075
Nick Wellnhofer f39fd66e 2016-04-27T03:01:16 Fix namespace::node() XPath expression Make sure that xmlXPathNodeSetAddNs is called for namespace nodes when matched with a namespace::node() step. This correctly sets the parent of namespace nodes. Note that xmlXPathNodeSetAddNs must only be called if working on the namespace axis. Otherwise, the context node is not the parent of the namespace node and the standard XP_TEST_HIT macro must be invoked. This explains the errors in the C14N tests that the old TODO comment mentioned.
Nick Wellnhofer 02b252d7 2015-03-08T17:00:37 Regression test for bug #695699
Nick Wellnhofer 342658a1 2015-03-08T16:46:04 Add a couple of XPath tests
Nick Wellnhofer f6aaabce 2015-03-08T16:05:26 Allow attributes on descendant-or-self axis If the context node is an attribute, the attribute itself is on the descendant-or-self axis. The principal node type of this axis is element, so the only node test that can return the attribute is "node()". In other words, "@attr/descendant-or-self::node()" is equivalent to "@attr". This matches the behavior of Saxon-CE.
Kasimier T. Buchcik bb2074e8 2006-01-05T14:49:40 Added regression tests for the latest XPath/pattern fixes. * test/XPath/docs/nodes test/XPath/tests/nodespat result/XPath/tests/nodespat: Added regression tests for the latest XPath/pattern fixes.
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
Daniel Veillard 4ddaa56d 2005-04-06T14:09:08 fixed the bug in lang() as raised by Elliotte Rusty Harold added a * xpath.c: fixed the bug in lang() as raised by Elliotte Rusty Harold * result/XPath/tests/langsimple test/XPath/tests/langsimple test/XPath/docs/lang: added a regression test Daniel
Daniel Veillard d8df6c0e 2001-04-05T16:54:14 Fixes in the plane: - xpath.c: fixed a [] evaluation problem reported - Fixes in the plane: - xpath.c: fixed a [] evaluation problem reported - test/XPath/tests/simpleaddr: extended test - result/XPath/simpleaddr: updated result Daniel
Daniel Veillard c8df0aaf 2000-10-10T23:50:30 Added XPointer: - configure.in Makefile.am include/makefile.am: adding Added XPointer: - configure.in Makefile.am include/makefile.am: adding XPointer and XPtrtests target - xpointer.[ch] : new files for XPointer support - test/XPath/xptr result/XPath/xptr: added XPointer testsuite and more XPath tests Daniel
Daniel Veillard e8282edd 2000-10-10T23:01:31 More work toward 2.2.5, integrated a number of patches - configure.in Makefile.am win32config.h.in: trying to cleanup make distcheck .... huh ... - include/Makefile.am include/win32config.h: new directory for includes - win32/Makefile.mingw win32/README.MSDev win32/libxml2/libxml2.dsp updated teh makefiles and instructions for WIN32 - xpath.c: small fixes - test/XPath/ results/XPath: updated the testcases and results - HTMLparser.c nanohttp.c testXPath.c: incorporated provided or suggested patches - valid.c: fixed an ID bug Daniel
Daniel Veillard ac260306 2000-10-04T13:33:43 More work and fixes on XPath: - debugXML.c testXPath.c xpath.[ch]: More work on XPath/Xpointer, incorporated "(TOM)" <ptittom@free.fr> patches rebuilt the XPath examples with the extra test Daniel
Daniel Veillard 740abf5a 2000-10-02T23:04:54 Big XPath cleanup continues, one URI fix: - xpath.[ch] debugXML.c testXPath.c: fixed the XPath evaluation engine, should be far more stable, incorporated a new version of preceding/following axis, need testing - uri.c: fixed file:///c:/a/b/c problem - test/XPath/tests/idsimple: augmented the XPath tests Daniel
Daniel Veillard 8b5dd83f 2000-10-01T20:28:44 - configure.in: releasing 2.2.4 - parser.[ch]: added xmlStrEqual() - HTMLparser.c HTMLtree.c SAX.c debugXML.c entities.c parser.c tree.c valid.c xlink.c xpath.c: converted all !xmlStrcmp to use xmlStrEqual instead - TODO: updated - added an XPath test Daniel
Daniel Veillard b96e6438 1999-08-29T21:02:19 Release 1.6, lot of fixes, more validation, code cleanup, added namespace on attributes, Daniel.
Daniel Veillard b05deb7f 1999-08-10T19:04:08 Huge commit: 1.5.0, XML validation, Xpath, bugfixes, examples .... Daniel
Daniel Veillard 1566d3a9 1999-07-15T14:24:29 Added XPath code (http://www.w3.org/TR/xpath), updated HTML support and docs, Daniel