1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-01-25 06:03:34 +03:00

78 Commits

Author SHA1 Message Date
Nick Wellnhofer
20c60886e4 Fix typos
Resolves #133.
2020-03-08 17:41:53 +01:00
Jared Yanovich
2a350ee9b4 Large batch of typo fixes
Closes #109.
2019-09-30 18:04:38 +02:00
Nick Wellnhofer
b9bdb9dbfd Check for integer overflow in xmlXPtrEvalChildSeq
Found with libFuzzer and UBSan.
2019-03-29 13:03:17 +01:00
Nick Wellnhofer
b21895717d Fix -Wenum-compare warnings
Also fixes a serious bug in xmlXPtrNewRangeNodePoint.
2017-11-27 13:42:30 +01:00
Stéphane Michaut
454e397eb7 Porting libxml2 on zOS encoding of code
First set of patches for zOS
- entities.c parser.c tree.c xmlschemas.c xmlschemastypes.c xpath.c xpointer.c:
  ask conversion of code to ISO Latin 1 to avoid having the compiler assume
  EBCDIC codepoint for characters.
- xmlmodule.c: make sure we have support for modules
- xmlIO.c: zOS path names are special avoid dsome of the expectstions from
  Unix/Windows
2017-08-28 14:30:43 +02:00
Nick Wellnhofer
bd1571cdc5 Fix memory leaks in XPointer error paths
Found with libFuzzer and ASan.
2017-05-27 15:59:18 +02:00
Nick Wellnhofer
e905f08123 Fix more NULL pointer derefs in xpointer.c
Found with afl-fuzz.
2016-10-12 14:00:03 +02:00
Nick Wellnhofer
c1d1f71211 Disallow namespace nodes in XPointer ranges
Namespace nodes must be copied to avoid use-after-free errors.
But they don't necessarily have a physical representation in a
document, so simply disallow them in XPointer ranges.

Found with afl-fuzz.

Fixes CVE-2016-4658.
2016-10-12 13:12:18 +02:00
Nick Wellnhofer
3f8a91036d Disallow namespace nodes in XPointer points 2016-10-12 13:12:18 +02:00
Nick Wellnhofer
9ab01a277d Fix XPointer paths beginning with range-to
The old code would invoke the broken xmlXPtrRangeToFunction. range-to
isn't really a function but a special kind of location step. Remove
this function and always handle range-to in the XPath code.

The old xmlXPtrRangeToFunction could also be abused to trigger a
use-after-free error with the potential for remote code execution.

Found with afl-fuzz.

Fixes CVE-2016-5131.
2016-10-12 13:12:18 +02:00
David Kilzer
4472c3a5a5 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.
2016-05-23 15:01:07 +08:00
Gaurav Gupta
f5496a1ef4 xpointer : fixing Null Pointers
For https://bugzilla.gnome.org/show_bug.cgi?id=738053
At many places in xpointer.c
Null check is missing which is dereferenced at later places.
2014-10-07 17:09:35 +08:00
Gaurav Gupta
a61929e8ca Remove Unnecessary Null check in xpointer.c
For https://bugzilla.gnome.org/show_bug.cgi?id=738052

superfluous check
2014-10-07 12:28:34 +08: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
3e62adbe39 Adding various checks on node type though the API
Specifially checking against namespace nodes before accessing node
pointers
2012-08-09 14:24:02 +08:00
Jüri Aedla
d8e1faeaa9 Fix an off by one pointer access
getting out of the range of memory allocated for xpointer decoding
2012-05-07 15:06:56 +08:00
Daniel Veillard
f5048b3e71 Hardening of XPath evaluation
Add a mechanism of frame for XPath evaluation when entering a function
or a scoped evaluation, also fix a potential problem in predicate
evaluation.
2011-08-19 11:07:51 +08:00
Daniel Veillard
594e5dfb48 Chasing dead assignments reported by clang-scan
* SAX2.c dict.c error.c hash.c nanohttp.c parser.c python/libxml.c
  relaxng.c runtest.c tree.c valid.c xinclude.c xmlregexp.c xmlsave.c
  xmlschemas.c xpath.c xpointer.c: mostly removing unneded affectations,
  but this led to a few real bugs and some part not yet understood
  (relaxng/interleave)
2009-09-07 14:58:47 +02:00
Daniel Veillard
8ed1072c2d Add symbol versioning to libxml2 shared libs
* libxml2.syms: the symbols with history, going back to 2.4.30
* Makefile.am configure.in: linking flags detection and use
* parser.c tree.c valid.c xpointer.c: various cleanup of functions
  which could be made static or simply discarded, not that many
2009-08-20 19:17:36 +02:00
Jakub Wilk
928d703386 Skip silently unrecognized XPointer schemes
* xpointer.c: unrecognized XPointers should be skipped instead of
  aborting the full XPointer evaluation
2009-07-29 12:24:11 +02:00
Daniel Veillard
aac7c68e87 fix a few warning raised by gcc-4.1 and latests changes Daniel
* c14n.c encoding.c xmlschemas.c xpath.c xpointer.c: fix a few
  warning raised by gcc-4.1 and latests changes
Daniel
2006-03-10 13:40:16 +00:00
Daniel Veillard
24505b0f5c a lot of small cleanups based on Linus' sparse check output. Daniel
* HTMLparser.c SAX2.c encoding.c globals.c parser.c relaxng.c
  runsuite.c runtest.c schematron.c testHTML.c testReader.c
  testRegexp.c testSAX.c testThreads.c valid.c xinclude.c xmlIO.c
  xmllint.c xmlmodule.c xmlschemas.c xpath.c xpointer.c: a lot of
  small cleanups based on Linus' sparse check output.
Daniel
2005-07-28 23:49:35 +00:00
Daniel Veillard
5d4644ef6e 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
2005-04-01 13:11:58 +00:00
Daniel Veillard
ce682bc24b 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
2004-11-05 17:22:25 +00:00
Daniel Veillard
3d97e669ec extending the tests coverage more fixes and cleanups Daniel
* gentest.py testapi.c: extending the tests coverage
* HTMLtree.c tree.c xmlsave.c xpointer.c: more fixes and cleanups
Daniel
2004-11-04 10:49:00 +00:00
William M. Brack
4d59e22a19 enhanced to assure that if xpointer is called for a document, the
* xinclude.c: enhanced to assure that if xpointer is called
  for a document, the XML_PARSE_NOENT flag is set before parsing
  the included document so that entities will automatically get
  taken care of.
* xpointer.c: corrected code so that, if an XML_ENTITY_REF node
  is encountered, it will log it and not crash (bug 135713)
2004-03-08 14:42:31 +00:00
William M. Brack
ce4fc56e1b fixed problem with union when last() is used in predicate (bug #131971)
* xpath.c: fixed problem with union when last() is used
  in predicate (bug #131971)
* xpointer.c: minor change to comment for doc generation
2004-01-22 02:47:18 +00:00
William M. Brack
f7eb794c14 fixed problem pointed out by Stphane Bidoul on the list. completed
* python/generator.py, python/libxml2class.txt: fixed problem
  pointed out by Stphane Bidoul on the list.
* xinclude.c, xpointer.c, xpath.c, include/libxml/xpointer.h:
  completed modifications required to fix Bug 129967 (at last!).
  Now wait to see how long before further trouble...
2003-12-31 07:59:17 +00:00
William M. Brack
72ee48d55f Fixed memory leak reported by Dave Beckett Removed spurious comment
* parser.c, xmlmemory.c, include/libxml/xmlmemory.h: Fixed
  memory leak reported by Dave Beckett
* xmlschemas.c: Removed spurious comment reported on the mailing
  list
* xinclude.c, xpath.c, xpointer.c, libxml/include/xpointer.h:
  Further work on Bug 129967 concerning xpointer range handling
  and range-to function; much better, but still not complete
2003-12-30 08:30:19 +00:00
William M. Brack
081719182d edited a couple of comments in accordance with posting on the mailing list
* xmlschemas.c: edited a couple of comments in accordance with
  posting on the mailing list (no logic change)
* xpointer.c: working on Bug 129967, added check for NULL
  nodeset to prevent crash.  Further work required.
* xpath.c: working on Bug 129967, added code to handle
  XPATH_LOCATIONSET in RANGETO code, also added code to
  handle it in xmlXPathEvaluatePredicateResult.  Further
  work required.
2003-12-29 02:52:11 +00:00
William M. Brack
272693c7e1 minor error cleanup for gcc-3.3.[12] compilation warnings.
* catalog.c,relaxng.c,testAutomata.c,xpointer.c,genChRanges.py,
  chvalid.c,include/libxml/chvalid.h,doc/examples/test1.c:
  minor error cleanup for gcc-3.3.[12] compilation warnings.
2003-11-14 16:20:34 +00:00
Daniel Veillard
659e71ec24 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
2003-10-10 14:10:40 +00:00
Daniel Veillard
fcf719ce0a cleanup migrated XPointer module to the new error mechanism Daniel
* xpath.c: cleanup
* xpointer.c include/libxml/xmlerror.h: migrated XPointer module
  to the new error mechanism
Daniel
2003-10-10 11:42:17 +00:00
Daniel Veillard
3c908dca47 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
2003-04-19 00:07:51 +00:00
Daniel Veillard
9a237c9d26 improved the script accordingly to the XInclude regression tests updates
* check-xinclude-test-suite.py: improved the script accordingly
  to the XInclude regression tests updates
* xpointer.c: Implemented XPointer element() Scheme W3C PR of 13
  November 2002
* result/XPath/xptr/chapterschildseq result/XPath/xptr/vidchildseq
  test/XPath/xptr/chapterschildseq test/XPath/xptr/vidchildseq:
  augmented the Xpointer testsuite for the element() scheme
Daniel
2003-02-13 15:52:58 +00:00
Daniel Veillard
56f21f298e tried to fix bug #97852 reported by Nicolas Noffke Daniel
* xpointer.c: tried to fix bug #97852 reported by Nicolas Noffke
Daniel
2002-11-06 15:49:46 +00:00
Daniel Veillard
34ce8bece2 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
2002-03-18 19:37:11 +00:00
Daniel Veillard
9ff8817e67 Fixing #74186, made sure all boolean expressions get fully parenthesized,
* c14n.c: Fixing #74186, made sure all boolean expressions
  get fully parenthesized, ran indent on the output
* configure.in HTMLtree.c SAX.c c14n.c debugXML.c tree.c xpointer.c
  include/libxml/tree.h: also #74186 related, removed the
  --with-buffers option, and all the preprocessor conditional
  sections that were resulting from it.
Daniel
2002-03-11 09:15:32 +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
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
Daniel Veillard
913d6e090f Fixed the previous fix, Daniel 2001-11-28 14:53:53 +00:00
Daniel Veillard
e85d9342c1 fixed a compilation bug pointed by Danny Jamshy Daniel
* xpointer.c: fixed a compilation bug pointed by Danny Jamshy
Daniel
2001-11-28 14:43:12 +00:00
Daniel Veillard
3c01b1d81b - include/libxml/globals.h include/libxml/threads.h threads.c
testThreads.c: far more testing, cleaning up bugs
- *.c : make sure globals.h is always included.
Daniel
2001-10-17 15:58:35 +00:00
Daniel Veillard
b44025c72b started integrating the non-controversial parts of Gary Pennington
* HTMLtree.c catalog.c debugXML.c entities.c nanoftp.c
  parser.c valid.c xmlmemory.c xpath.c xpointer.c: started
  integrating the non-controversial parts of Gary Pennington
  multithread patches
* catalog.c: corrected a small bug introduced
Daniel
2001-10-11 22:55:55 +00:00
Daniel Veillard
60087f30f3 preparing 2.4.6 release updated and rebuilt the docs fixed a number of
* configure.in: preparing 2.4.6 release
* doc/xml.html doc/html/*: updated and rebuilt the docs
* include/libxml/*.h *.c: fixed a number of teh/the widht/width typos
Daniel
2001-10-10 09:45:09 +00:00
Daniel Veillard
ae6db17a44 removed unused var Daniel
* xpointer.c: removed unused var
Daniel
2001-08-16 19:32:00 +00:00
Daniel Veillard
7db3773a5c store the line numbder in element->content, may break some software, need
* DOCBparser.c HTMLparser.c HTMLtree.c SAX.c debugXML.c parser.c
  tree.c xpointer.c: store the line numbder in element->content,
  may break some software, need a configuration mechanism
Daniel
2001-07-12 01:20:08 +00:00
Daniel Veillard
87ee914013 - xpointer.c include/win32config.h win32/libxml2/libxml2.def.src
libxml.h : Yon Derek provided a set of changes to compile from
  CVS on Windows/MSC
Daniel
2001-06-28 12:54:16 +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