1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-03-10 08:58:16 +03:00

49 Commits

Author SHA1 Message Date
Nick Wellnhofer
91ac664f4b Fix OOB write in xmlXPathEmptyNodeSet
xmlXPathEmptyNodeSet would write a NULL pointer just beyond the end of
the nodeTab array. This macro isn't used in libxml2, but in some of the
math functions in libexslt where it can result in heap corruption and
denial of service.

Found by afl-fuzz and ASan.
2016-04-26 16:38:08 +02:00
Daniel Veillard
f8e3db0445 Big space and tab cleanup
Remove all space before tabs and space and tabs at end of lines.
2012-09-11 13:26:36 +08:00
Daniel Veillard
1bd45d1309 Change the XPath code to percolate allocation errors
looping 1000 time on an error stating that a nodeset has
grown out of control is useless, make sure we percolate
error up to the various loops and break when errors occurs
2012-09-05 15:35:19 +08:00
Daniel Veillard
8880170e21 Fix the XPath arity check to also check the XPath stack limits
Example xmlXPathNormalizeFunction() would do CHECK_ARITY(1)
and the expect valuePop(ctxt); to return an object, except
now valuePop() looks at the XPath stack frames and fails returning
NULL, and we end up crashing dereferencing the object.
Real solution is to exten CHECK_ARITY() and recompile all
XPath functions using it.
2012-08-27 16:20:05 +08:00
Daniel Veillard
a82b182655 more coverage more fixes Daniel
* gentest.py testapi.c: more coverage
* debugXML.c parser.c xmlregexp.c xpath.c: more fixes
Daniel
2004-11-08 16:24:57 +00:00
Daniel Veillard
6ebf3c4c1a trying to remove some warning when compiling on Fedora Core 3 and 64bits
* xmllint.c xpath.c include/libxml/xpath.h
  include/libxml/xpathInternals.h python/libxml.c
  python/libxml_wrap.h: trying to remove some warning when compiling
  on Fedora Core 3 and 64bits
Daniel
2004-08-22 13:11:39 +00:00
Daniel Veillard
a2351322c8 hack based on Arjan van de Ven suggestion to reduce ELF footprint and
* elfgcchack.h doc/elfgcchack.xsl libxml.h: hack based on Arjan van de
  Ven suggestion to reduce ELF footprint and generated code. Based on
  aliasing of libraries function to generate direct call instead of
  indirect ones
* doc/libxml2-api.xml doc/Makefile.am doc/apibuild.py: added automatic
  generation of elfgcchack.h based on the API description, extended
  the API description to show the conditionals configuration flags
  required for symbols.
* nanohttp.c parser.c xmlsave.c include/libxml/*.h: lot of cleanup
* doc/*: regenerated the docs.
Daniel
2004-06-27 12:08:10 +00:00
William M. Brack
09428a3905 undid last change (my bad). Put necessary fix in libxslt/libexslt instead.
* include/libxml/xpathInternals.h: undid last change (my
  bad).  Put necessary fix in libxslt/libexslt instead.
* include/libxml/DOCBparser.h: put test for __GCC__ on
  warning directive (Bug 129105)
2003-12-20 09:20:39 +00:00
William M. Brack
966668a703 fixed xmlXPathReturnString to cater for NULL pointer (bug 129561) added
* include/libxml/xpathInternals.h: fixed xmlXPathReturnString
  to cater for NULL pointer (bug 129561)
* globals.c: added comment to suppress documentation warning
* doc/apibuild.py: fixed problem which caused last APIchunkxx.html
  to be lost.  Rebuilt doc/* (including adding APIchunk26.html)
2003-12-20 02:10:28 +00:00
Daniel Veillard
be5869729a modified the file header to add more informations, painful... updated to
* include/libxml/*.h include/libxml/*.h.in: modified the file
  header to add more informations, painful...
* genChRanges.py genUnicode.py: updated to generate said changes
  in headers
* doc/apibuild.py: extract headers, add them to libxml2-api.xml
* *.html *.xsl *.xml: updated the stylesheets to flag geprecated
  APIs modules. Updated the stylesheets, some cleanups, regenerated
* doc/html/*.html: regenerated added back book1 and libxml-lib.html
Daniel
2003-11-18 20:56:51 +00:00
William M. Brack
60f394e96d Finally - found the problem with the page generation (XMLPUBFUN not
* doc/html/*.html: Finally - found the problem with the
  page generation (XMLPUBFUN not recognized by gtkdoc).
  Re-created the pages using a temporary version of
  include/libxml/*.h.
* testOOMlib.c,include/libxml/encoding.h,
  include/libxml/schemasInternals.h,include/libxml/valid.h,
  include/libxml/xlink.h,include/libxml/xmlwin32version.h,
  include/libxml/xmlwin32version.h.in,
  include/libxml/xpathInternals.h: minor edit of comments
  to help automatic documentation generation
* doc/docdescr.doc: small elaboration
* doc/examples/test1.c,doc/examples/Makefile.am: re-commit
  (messed up on last try)
* xmlreader.c: minor change to clear warning.
2003-11-16 06:25:42 +00:00
Daniel Veillard
d96f6d3429 cleaning up XPath error reporting that time. applied the two patches for
* error.c include/libxml/xmlerror.h include/libxml/xpath.h
  include/libxml/xpathInternals.h xpath.c: cleaning up XPath
  error reporting that time.
* threads.c: applied the two patches for TLS threads
  on Windows from Jesse Pelton
* parser.c: tiny safety patch for xmlStrPrintf() make sure the
  return is always zero terminated. Should also help detecting
  passing wrong buffer size easilly.
* result/VC/* result/valid/rss.xml.err result/valid/xlink.xml.err:
  updated the results to follow the errors string generated by
  last commit.
Daniel
2003-10-07 21:25:12 +00:00
Daniel Veillard
a9cce9cd0d Okay this is scary but it is just adding a configure option to disable
* HTMLtree.c SAX2.c c14n.c catalog.c configure.in debugXML.c
  encoding.c entities.c nanoftp.c nanohttp.c parser.c relaxng.c
  testAutomata.c testC14N.c testHTML.c testRegexp.c testRelax.c
  testSchemas.c testXPath.c threads.c tree.c valid.c xmlIO.c
  xmlcatalog.c xmllint.c xmlmemory.c xmlreader.c xmlschemas.c
  example/gjobread.c include/libxml/HTMLtree.h include/libxml/c14n.h
  include/libxml/catalog.h include/libxml/debugXML.h
  include/libxml/entities.h include/libxml/nanohttp.h
  include/libxml/relaxng.h include/libxml/tree.h
  include/libxml/valid.h include/libxml/xmlIO.h
  include/libxml/xmlschemas.h include/libxml/xmlversion.h.in
  include/libxml/xpathInternals.h python/libxml.c:
  Okay this is scary but it is just adding a configure option
  to disable output, this touches most of the files.
Daniel
2003-09-29 13:20:24 +00:00
Igor Zlatkovic
aa3cfbd080 realigned parameters after taint 2003-08-27 08:59:58 +00:00
Igor Zlatkovic
76874e4516 Exportability taint of the headers 2003-08-25 09:05:12 +00:00
Igor Zlatkovic
7ae91bcd9e retired xmlwin32version.h 2002-11-08 17:18:52 +00:00
William M. Brack
0c022ad823 xpath.c fix bug 85256 2002-07-12 00:56:01 +00:00
Aleksey Sanin
f8cb6dda89 added merlin-c14n-two.tar.gz tests for c14n/exc-c14n and slightly modified
* result/c14n/exc-without-comments/merlin-c14n-two-*
  result/c14n/without-comments/merlin-c14n-two-*
  test/c14n/exc-without-comments/merlin-c14n-two-*
  test/c14n/without-comments/merlin-c14n-two-*
  testC14N.c Makefile.am: added merlin-c14n-two.tar.gz tests for
c14n/exc-c14n and slightly modified test script to handle
these test cases
* c14n.c: fixed bugs for complicated nodes set (namespace
without node and others from merlin-c14n-two.tar.gz)
* include/libxml/xpathInternals.h win32/dsp/libxml2.def.src
win32/libxml2.def.src: "opened" xmlXPathNodeSetFreeNs() function
for xmlsec performance patch
* xpath.c: fixed self::node() for namespaces and attributes
2002-06-04 04:27:06 +00:00
Aleksey Sanin
79376ba948 maked xmlXPathNodeSetAddNs() function public for XMLSec performance
* xpath.c include/libxml/xpathInternals.h: maked xmlXPathNodeSetAddNs()
          function public for XMLSec performance optimizations
2002-05-14 06:41:32 +00:00
Daniel Veillard
61f261749f Heiko W. Rupp fixed a lot of comments to generate better API descriptions
* include/libxml/*.h: Heiko W. Rupp fixed a lot of comments
  to generate better API descriptions etc...
Daniel
2002-03-12 18:46:39 +00:00
Daniel Veillard
0ba59239d9 Tentatively fixed #69655 , make compiling with -Wredundant-decls clean.
* HTMLtree.c Makefile.am build_glob.py configure.in debugXML.c
  globals.c parser.c threads.c tree.c valid.c xmlmemory.c
  xpath.c xpointer.c include/libxml/globals.h include/libxml/parser.h
  include/libxml/parserInternals.h include/libxml/tree.h
  include/libxml/xmlmemory.h include/libxml/xpathInternals.h:
  Tentatively fixed #69655 , make compiling with -Wredundant-decls
  clean.
* python/libxml.c: fixed a warning.
Daniel
2002-02-10 13:20:39 +00:00
Daniel Veillard
9d06d300a5 Build a new version hopefully near complete and fully documented of the
* doc/libxml2-api.xml doc/parsedecl.py: Build a new version
  hopefully near complete and fully documented of the API in XML
* HTMLtree.c SAX.c debugXML.c error.c globals.c parser.c tree.c
 xmlIO.c xmlmemory.c include/libxml/catalog.h include/libxml/hash.h
 include/libxml/list.h include/libxml/parser.h include/libxml/tree.h
 include/libxml/parserInternals.h include/libxml/valid.hi
 include/libxml/xmlIO.h include/libxml/xmlerror.hi
 include/libxml/xmlmemory.h include/libxml/xmlversion.h.ini
 include/libxml/xpath.h include/libxml/xpathInternals.h:
  Cleaned up the doc comments a lot in the process, the interface
  coverage is now 100%
Daniel
2002-01-22 18:15:52 +00:00
Daniel Veillard
99e55ebe94 the change made to xmlXPathFuncLookupFunc was incompatible roll it back
* xpath.c include/libxml/xpathInternals.h: the change made to
  xmlXPathFuncLookupFunc was incompatible roll it back
Daniel
2002-01-21 08:56:29 +00:00
Daniel Veillard
963d2ae415 cleanup patch from Anthony Jones fix the headers to avoid in make scan
* SAX.c: cleanup patch from Anthony Jones
* doc/Makefile.am: fix the headers to avoid in make scan
* parserInternals.c xpath.c include/libxml/*.h: cleanup of the
  includes, * vs Ptr and general cleanup
* parsedecl.py: first version of a script to extract the
  module interfaces, the goal will be to provide .decl or XML
  specification of the interfaces to build wrappers.
Daniel
2002-01-20 22:08:18 +00:00
Daniel Veillard
5344c60dc1 Fixed a few other problems raised by Charlie Bozeman. fixed the output
* DOCBparser.c parser.c valid.c include/libxml/parserInternals.h
  include/libxml/xmlerror.h include/libxml/xpathInternals.h:
  Fixed a few other problems raised by Charlie Bozeman.
* result/VC/ElementValid[5-7]: fixed the output
Daniel
2001-12-31 16:37:34 +00:00
Daniel Veillard
cbaf399537 applied 42 documentation patches from Charlie Bozeman. Regenerated the
* *.c include/libxml/*.h doc/html/*: applied 42 documentation
  patches from Charlie Bozeman. Regenerated the HTML docs.
Daniel
2001-12-31 16:16:02 +00:00
Thomas Broyer
47334c09f4 implemented xmlXPathObjectCopy for external objects added
* xpath.c: implemented xmlXPathObjectCopy for external objects
	* include/libxml/xpathInternals.h: added xmlXPathStackIsExternal
2001-10-07 16:41:52 +00:00
Thomas Broyer
f186c8259a fixed a bug in xmlXPathNodeTrailingSorted (for now it worked like the
* xpath.c: fixed a bug in xmlXPathNodeTrailingSorted (for now it
	  worked like the set:leading() function)
	* include/libxml/xpathInternals.h: added xmlXPathNodeSetContains
2001-07-31 23:30:37 +00:00
Thomas Broyer
ba4ad3263b added a function lookup framework
* xpath.c include/libxml/xpath{,Internals}.h: added a function
	  lookup framework
2001-07-26 16:55:21 +00:00
Daniel Veillard
5e2dace1ca Cleanup, cleanup .. removed libxml softlink for good cleanup to get 100%
Cleanup, cleanup ..
* configure.in Makefile.am: removed libxml softlink for good
* include/libxml/*.h *.c doc/Makefile.am: cleanup to get
  100% coverage by gtk-doc
Daniel
2001-07-18 19:30:27 +00:00
Daniel Veillard
8fcc494e64 cleaned up some warning on the Alpha Daniel
* SAX.c xmlIO.c: cleaned up some warning on the Alpha
Daniel
2001-07-17 20:07:33 +00:00
Thomas Broyer
f06a3d8b53 added a more convenient extension API for value and context managing Now
* include/libxml/xpath{,Internals}.h xpath.c: added a more
	  convenient extension API for value and context managing
	  Now handles external objects through xmlXPathPopExternal,
	  xmlXPathWrapExternal and xmlXPathReturnExternal.
	  Added functions for sets operations (intersection, etc.)
2001-07-16 04:52:57 +00:00
Daniel Veillard
f06307e2c1 - xpath.c include/libxml/xpath.h include/libxml/xpathInternals.h:
lot of optimization work, results in significant improvements
  when handling really complex XPath queries. Add a small optimizer
  for unions, improve [n] and [last()], avoid some costly ops.
Daniel
2001-07-03 10:35:50 +00:00
Daniel Veillard
c5d64345cf Summer's cleanup, a really big one:
* AUTHORS: added William and Bjorn
* include/libxml/*.h *.c README doc/*.html etc.: changed old email to
  daniel@veillard.com hopefully I won't have to do this again
* doc/Makefile.am doc/html/*.html: cleanup makefile, checked that
  docs can be rebuilt cleanly now
* include/libxml/xml*version.h*: removed include/libxml/xmlversion.h
  from CVs it's generated, added include/libxml/xmlwin32version.h
  also generated but which should change far less frequently.
* catalog.c nanoftp.c: made sure to include libxml.h not
  libxml/xmlversion.h directly
* include/libxml/*.h: include xmlwin32version.h instead of xmlversion.h
  when compiling on WIN32 and MSC
Daniel
2001-06-24 12:13:24 +00:00
Daniel Veillard
017b108fcf - Makefile.am: cleanup when --without-debug is specified
- xinclude.c xpath.c xpathInternals.h xpointer.c: cleanup
  w.r.t. --without-debug and other include points
- catalog.h testCatalog.c: a bit of cleanup and prepare for XML
  Catalogs
- configure.in entities.h tree.h HTMLparser.c: removed
  --without-corba, made the _private field mandatory
Daniel
2001-06-21 11:20:21 +00:00
Daniel Veillard
bed7b052a3 - HTMLtree.h debugXML.h parserInternals.h tree.h valid.c
xmlversion.h.in xpathInternals.h xpath.h: some cleanup for gtk-doc
- doc/html/* : rebuilt the docs
- valid.c: small patch which may improve some case when
  validating.
Daniel
2001-05-19 14:59:49 +00:00
Daniel Veillard
ba0b8c94ac - xpath.c xpath.h xpathInternals.h: apply an XPath API cleanup
patch from Thomas Broyer
Daniel
2001-05-15 09:43:47 +00:00
Daniel Veillard
56a4cb8c4d Huge cleanup, I switched to compile with
-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit
-Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat
-Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow
-Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline
- HTMLparser.[ch] HTMLtree.c SAX.c debugXML.c encoding.[ch]
  encoding.h entities.c error.c list.[ch] nanoftp.c
  nanohttp.c parser.[ch] parserInternals.[ch] testHTML.c
  testSAX.c testURI.c testXPath.c tree.[ch] uri.c
  valid.[ch] xinclude.c xmlIO.[ch] xmllint.c xmlmemory.c
  xpath.c xpathInternals.h xpointer.[ch] example/gjobread.c:
  Cleanup, staticfied a number of non-exported functions,
  detected and cleaned up a dozen of problem found this way,
  avoided a lot of public function name/typedef/system names clashes
- doc/xml.html: updated
- configure.in: switched private flags to the really pedantic ones.
Daniel
2001-03-24 17:00:36 +00:00
Owen Taylor
3473f88a7a Revert directory structure changes 2001-02-23 17:55:21 +00:00
CET 2001 Tomasz Koczko
64636e7f6e moved to libxml directory - this allow simplify automake/autoconf. Now
Thu Feb 23 02:03:56 CET 2001 Tomasz Koczko <kloczek@pld.org.pl>

        * *.c *.h libxml files: moved to libxml directory - this allow
	  simplify automake/autoconf. Now isn't neccessary hack on
	  am/ac level for make and remove libxml symlink (modified for this
	  also configure.in and main Makefile.am). Now automake abilities
	  are used in best way (like in many other projects with libraries).
	* include/win32config.h: moved to libxml directory (now include
	  directory isn't neccessary).
	* Makefile.am, examples/Makefile.am, libxml/Makefile.am:
	  added empty DEFS and in INCLUDES rest only -I$(top_builddir) -
	  this allow minimize parameters count passed to libtool script
	  (now compilation is also slyghtly more quiet).
	* configure.in: simplifies libzdetestion - prepare separated
	  variables for keep libz name and path to libz header files isn't
	  realy neccessary (if someone have libz installed in non standard
	  prefix path to header files ald library can be passed as:
	  $ CFALGS="-I</libz.h/path>" LDFLAGS="-L</libz/path>" ./configure
	* autogen.sh: check now for libxml/entities.h.

	After above building libxml pass correctly and also pass
	"make install DESTDIR=</install/prefix>" from tar ball generated by
	"make dist". Seems ac/am reorganization is finished. This changes
	not touches any other things on *.{c,h} files level.
2001-02-23 01:37:32 +00:00
Daniel Veillard
6e6a6cc6e7 couple of fixes before release:
- xpathInternals.h: exported a few axis functions
- doc/xml.html: updated the doc
Daniel
2001-02-15 15:55:44 +00:00
Daniel Veillard
e456646d5d More work, bugfixes for problems detected by XSLT, and addition of
a new specific type for XSLT:
- xpathInternals.h xpath.[ch] debugXML.c: added the XPATH_XSLT_TREE
  type correponding to an XSLT result tree fragment. Share most
  of the data format with node set, as well as operators.
- HTMLtree.c: added a newline at the end of the doctype output
  whe this one is not present initially.
- tree.c: make sure taht the parent and doc pointers are properly
  set when copying attributes (lists).
Daniel
2001-01-22 09:58:39 +00:00
Daniel Veillard
8f4d97579a added xmlXPathRegisterVariableLookup() for XSLT Daniel
* xpath.[ch] xpathInternals.h: added xmlXPathRegisterVariableLookup() for XSLT
Daniel
2001-01-19 05:32:34 +00:00
Daniel Veillard
389e6b7227 Patches bug fixes and on new function:
- xpath.c: fixed the comaprision of values and nodelists,
  need to compare nodelist still ...
- debugXML.c: avoided a possible core dump
- HTMLparser.c: cleanup
- nanohttp.c: contributed fix.
- tree.c: fixes in properties handling added xmlSetNsProp
  needed by libxslt
- xpathInternals.h: exported xmlXPathBooleanFunction, added a
  comment
- TODO: updated
Daniel
2001-01-15 19:41:13 +00:00
Daniel Veillard
a6d8eb6256 Finally had a bit of time to resynch both trees:
- HTMLparser.[ch]: added a way to avoid adding automatically
  omitted tags. htmlHandleOmittedElem() allows to change the
  default handling.
- tree.[ch] xmllint.c: added xmlDocDumpFormatMemory() and
  xmlDocDumpFormatMemoryEnc(), uses memory functions for output
  of xmllint too when using --memory flag, added a memory test
  suite at the Makefile level.
- xpathInternals.h xpath.[ch] xpointer.c: fixed problems
  with namespace use when encountering QNames in XPath evalation,
  added xmlns() scheme in XPointer.
- nanoftp.c : incorporated a fix
- parser.c xmlIO.c: fixed problems raised with encoding when using
  the memory I/O
- parserInternals.c: closed bug 25934 reported by
  torsten.landschoff@innominate.de
- TODO: updated
Daniel
2000-12-27 10:46:47 +00:00
Daniel Veillard
f62ceffb7e General fixes, XPointer improvements:
- HTMLparser.c: some fixes on auto-open of html/head/body
- encoding.c: fixed a compilation error on some gcc env
- xpath.c xpointer.[ch] xpathInternals.h: improved the
  XPointer implementation
- test/XPath/xptr/strpoint test/XPath/xptr/strrange3: added
  related XPointer tests and associated results
Daniel
2000-11-24 23:36:01 +00:00
Daniel Veillard
a5db68a39b - xpath.c xpathInternals.h: applied a large cleaning patch
from TOM <ptittom@free.fr>, it also add namespace support
  for function and variables registration.
Daniel
2000-10-29 18:06:06 +00:00
Daniel Veillard
f6bf921daa - xpath.c textXPath.c xpathInternals.h: applied TOM <ptittom@free.fr>
cleanup patch for XPath
Daniel
2000-10-26 14:07:44 +00:00
Daniel Veillard
29a11cc696 Releasing 2.2.6 after adding xpathInternals.h:
- configure.in: release 2.2.6
- xpath.[ch] xpointer.c xpathInternals.h: added xpathInternals.h
  exporting the inner functions of xpath for extension modules
- doc/*: updated and rebuilt the doc
Daniel
2000-10-25 13:32:39 +00:00