1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-02-09 17:57:24 +03:00

258 Commits

Author SHA1 Message Date
Nick Wellnhofer
aec2bf7153 Make xmlFreeDocElementContent non-recursive
Avoid call stack overflow when freeing element type declarations with
deeply nested contents.

Found by OSS-Fuzz.
2019-10-14 18:01:51 +02:00
Nick Wellnhofer
24e3973bc0 Make xmlDumpElementContent non-recursive
Avoid call stack overflow when dumping deeply nested element
declarations.

Found by OSS-Fuzz.
2019-10-04 14:42:59 +02:00
Jared Yanovich
2a350ee9b4 Large batch of typo fixes
Closes #109.
2019-09-30 18:04:38 +02:00
Nick Wellnhofer
4dd6d7a58e Fix list callback signatures
Make sure that all parameters and return values of list callback
functions exactly match the callback function type. This is required
to pass clang's Control Flow Integrity checks and to allow compilation
to asm.js with Emscripten.

Also change the `user` parameter type from `const void *` to `void *`.
2017-11-09 17:28:00 +01:00
Nick Wellnhofer
e03f0a199a Fix hash callback signatures
Make sure that all parameters and return values of hash callback
functions exactly match the callback function type. This is required
to pass clang's Control Flow Integrity checks and to allow compilation
to asm.js with Emscripten.

Fixes bug 784861.
2017-11-09 16:42:47 +01:00
J. Peter Mugaas
d2c329a9a4 Fix -Wimplicit-fallthrough warnings
Add "falls through" comments to quench implicit-fallthrough warnings
which are enabled by -Wextra under GCC 7.
2017-10-21 13:49:31 +02:00
Nick Wellnhofer
c709f3f267 Fix structured validation errors
Also pass 'str2'. Fixes bug 777473.
2017-09-07 19:52:39 +02:00
Nick Wellnhofer
8bbe4508ef Spelling and grammar fixes
Fixes bug 743172, bug 743489, bug 769632, bug 782400 and a few other
misspellings.
2017-06-17 16:34:23 +02:00
Nick Wellnhofer
92b9e8c8b3 Fix type confusion in xmlValidateOneNamespace
Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types on
namespace declarations make no practical sense anyway.

Fixes bug 780228.

Found with libFuzzer and ASan.
2017-06-07 20:26:32 +02:00
Daniel Veillard
94691dc884 Fix NULL pointer deref in xmlDumpElementContent
Can only be triggered in recovery mode.

Fixes bug 758422 (CVE-2017-5969).
2017-06-07 19:58:26 +02:00
Nick Wellnhofer
932cc9896a Fix buffer size checks in xmlSnprintfElementContent
xmlSnprintfElementContent failed to correctly check the available
buffer space in two locations.

Fixes bug 781333 (CVE-2017-9047) and bug 781701 (CVE-2017-9048).

Thanks to Marcel Böhme and Thuan Pham for the report.
2017-06-05 19:38:19 +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
Jan Pokorný
bb654feb9a Fix typos: dictio{ nn -> n }ar{y,ies}
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2016-04-15 22:22:48 +08:00
Daniel Veillard
ef709ce2f7 Fix the spurious ID already defined error
For https://bugzilla.gnome.org/show_bug.cgi?id=737840
the fix for 724903 introduced a regression on external entities carrying
IDs, revert that patch in part and add a specific test to avoid readding it
2015-09-10 19:46:46 +08:00
Gaurav Gupta
658b86c0ea Couple of Missing Null checks
For https://bugzilla.gnome.org/show_bug.cgi?id=734328

Missing Null check could cause crash, if a pointer is dereferenced.

Found problem at two places in valid.c
2014-08-07 11:19:03 +08:00
Daniel Veillard
a16eb96807 erroneously ignores a validation error if no error callback set
Reported by Stefan Behnel
https://bugzilla.gnome.org/show_bug.cgi?id=724903
2014-06-10 16:06:14 +08:00
Daniel Veillard
e18bce0d06 fixing a ptotential uninitialized access 2014-02-06 10:47:20 +01:00
Denis Pauk
0146179120 Drop not needed checks
https://bugzilla.gnome.org/show_bug.cgi?id=704075
2013-09-30 10:57:35 +08:00
Gaurav
c570b37972 Fix pointer dereferenced before null check
for https://bugzilla.gnome.org/show_bug.cgi?id=708364

xmlValidateElementContent is a private function but should still
check the ctxt argument before dereferencing
2013-09-30 10:43:47 +08:00
Michael Wood
fb27e2cd20 Fix spelling of "length". 2012-10-30 10:18:49 +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
Daniel Veillard
cb3549e30a Improve the error report on undefined REFs
Use the tree node to provide the error context instead
of the parser input which is not relevant anymore,
based on a suggestion by François Delyon <f.delyon@satimage.fr>
2011-11-11 13:43:51 +08:00
Daniel Veillard
f3c06692e0 Recognize ID attribute in HTML without DOCTYPE
* valid.c: xmlIsID() was short-circuiting the case where there
  was no DTD.
2009-10-16 16:47:58 +02: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
a721612e54 446613 small validation bug mixed content with NS
* valid.c: fix a bug when valdating mixed content lists and some
  name use namespaces prefixes.
* result/valid/notes.xml* test/valid/dtds/notes.dtd * test/valid/notes.xml:
  add the test case to the regression suite
2009-08-21 18:22:58 +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
Daniel Veillard
eab3ac94c7 567619 xmlValidateNotationUse missing param test
* valid.c: this was raised by a testapi crash on solaris
2009-08-12 10:39:29 +02:00
Daniel Veillard
bccae2d210 * c14n.c debugXML.c doc/examples/io2.c parser.c schematron.c
valid.c xmlschemas.c xmlwriter.c xpath.c: use %s to printf string
  patch by Christian Persch, fixes #581612
2009-06-04 11:22:45 +02:00
Daniel Veillard
be2bd6ac6f adds element traversal support avoid a warning regenerated daniel
* include/libxml/tree.h tree.c python/generator.py: adds
  element traversal support
* valid.c: avoid a warning
* doc/*: regenerated
daniel

svn path=/trunk/; revision=3804
2008-11-27 15:26:28 +00:00
Daniel Veillard
2cba415895 fix a small initialization problem raised by Ashwin increase testing
* threads.c: fix a small initialization problem raised by Ashwin
* testapi.c gentest.py: increase testing especially for document
  with an internal subset, and entities
* tree.c: fix a deallocation issue when unlinking entities from
  a document.
* valid.c: fix a missing entry point test not found previously.
* doc/*: regenerated the APIs, docs etc.
daniel

svn path=/trunk/; revision=3778
2008-08-27 11:45:41 +00:00
Daniel Veillard
ae0765b681 more progresses against the official regression tests small cleanup for
* runxmlconf.c: more progresses against the official regression tests
* runsuite.c: small cleanup for non-leak reports
* include/libxml/tree.h: parsing flags and other properties are
  now added to the document node, this is generally useful and
  allow to make Name and NmToken validations based on the parser
  flags, more specifically the 5th edition of XML or not
* HTMLparser.c tree.c: small side effects for the previous changes
* parser.c SAX2.c valid.c: the bulk of teh changes are here,
  the parser and validation behaviour can be affected, parsing
  flags need to be copied, lot of changes. Also fixing various
  validation problems in the regression tests.
Daniel

svn path=/trunk/; revision=3762
2008-07-31 19:54:59 +00:00
Daniel Veillard
38431c3308 release of libxml2 2.6.28 patch from Dagfinn I. Mannsåker for idness of
* doc/* configure.in NEWS: release of libxml2 2.6.28
* valid.c: patch from Dagfinn I. Mannsåker for idness of name
  in HTML, c.f. bug #305885.
Daniel

svn path=/trunk/; revision=3638
2007-06-12 16:20:09 +00:00
Daniel Veillard
f6cf57a03b applied patch to fix xmlListAppend() from Georges-André SILBER also fix
* list.c: applied patch to fix xmlListAppend() from 
  Georges-André SILBER
* valid.c: also fix the place wher it was called.
Daniel

svn path=/trunk/; revision=3614
2007-05-09 23:53:30 +00:00
Daniel Veillard
6ad5c4af74 fixed a weird error where validity context whould not show up if warnings
* valid.c: fixed a weird error where validity context whould not
  show up if warnings were disabled pointed out by Bob Stayton
* xmlIO.c doc/generator.py: cleanup and fix to regenerate the docs
* doc//* testapi.c: rebuilt the docs
Daniel
2006-10-11 16:43:06 +00:00
Daniel Veillard
b2dc5675e9 fixed a bug #203125 in Red hat bugzilla, crashing PHP4 on validation
* valid.c: fixed a bug #203125 in Red hat bugzilla, crashing PHP4
  on validation errors, the heuristic to guess is a vctxt user
  pointer is the parsing context was insufficient.
Daniel
2006-08-22 14:45:40 +00:00
Daniel Veillard
11ce4004d8 end of first pass on coverity reports. Daniel
* runtest.c schematron.c testAutomata.c tree.c valid.c xinclude.c
  xmlcatalog.c xmlreader.c xmlregexp.c xpath.c: end of first
  pass on coverity reports.
Daniel
2006-03-10 00:36:23 +00:00
Rob Richards
04bffc028d fix HTML attribute ID checking for input element. Maintain current
* valid.c: fix HTML attribute ID checking for input element.
  Maintain current attribute "name" behavior for now.
2006-03-03 16:44:37 +00:00
Daniel Veillard
7802ba56ff avoid function parameters names 'list' as this seems to give troubles with
* valid.c xmlregexp.c include/libxml/valid.h
  include/libxml/xmlregexp.h: avoid function parameters names 'list'
  as this seems to give troubles with VC6 and stl as reported by
  Samuel Diaz Garcia.
Daniel
2005-10-27 11:56:20 +00:00
Daniel Veillard
54f9a4f508 fixing a number of issues raised by xml:id but more generally related to
* SAX2.c tree.c valid.c: fixing a number of issues raised by xml:id
  but more generally related to attributes and ID handling, fixes
  #314358 among other things
Daniel
2005-09-03 13:28:24 +00:00
Daniel Veillard
8874b94cd2 added a parser XML_PARSE_COMPACT option to allocate small text nodes (less
* HTMLparser.c parser.c SAX2.c debugXML.c tree.c valid.c xmlreader.c
  xmllint.c include/libxml/HTMLparser.h include/libxml/parser.h:
  added a parser XML_PARSE_COMPACT option to allocate small
  text nodes (less than 8 bytes on 32bits, less than 16bytes on 64bits)
  directly within the node, various changes to cope with this.
* result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: this
  slightly change the output
Daniel
2005-08-25 13:19:21 +00:00
Daniel Veillard
465a000b10 fixed an uninitialized variable extended the API to add the parser,
* valid.c: fixed an uninitialized variable
* xmlregexp.c include/libxml/xmlregexp.h: extended the API to
  add the parser, serializer and some debugging
* include/libxml/xmlversion.h.in: made the new support compiled
  by default if Schemas is included
* testRegexp.c: cleanup and integration of the first part of the
  new code with a special switch
* xmllint.c: show up Expr in --version if compiled in
* include/libxml/tree.h: moved the xmlBuffer definition up
Daniel
2005-08-22 12:07:04 +00:00
Daniel Veillard
379a3b7dc5 applied patch from Derek Poon fixing bug #310692 Daniel
* valid.c: applied patch from Derek Poon fixing bug #310692
Daniel
2005-08-12 10:18:14 +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
ffa3c74933 applied a patch from Marcus Boerger to fix problems with calling
* error.c globals.c parser.c runtest.c testHTML.c testSAX.c
  threads.c valid.c xmllint.c xmlreader.c xmlschemas.c xmlstring.c
  xmlwriter.c include/libxml/parser.h include/libxml/relaxng.h
  include/libxml/valid.h include/libxml/xmlIO.h
  include/libxml/xmlerror.h include/libxml/xmlexports.h
  include/libxml/xmlschemas.h: applied a patch from Marcus Boerger
  to fix problems with calling conventions on Windows this should
  fix #309757
Daniel
2005-07-21 13:24:09 +00:00
William M. Brack
f810de0436 fixed problem with free on dupl attribute in dtd (bug309637). added
* parser.c: fixed problem with free on dupl attribute in
  dtd (bug309637).
* test/errors/attr3.xml, result/errors/attr3.*: added
  regression test for this
2005-07-06 22:48:41 +00:00
Daniel Veillard
dbee0f1989 working some weird error reporting problem for DTD validation. augmented
* error.c valid.c: working some weird error reporting problem for
  DTD validation.
* runtest.c: augmented with DTD validation tests
* result/VC/OneID*: slight change in validation output.
Daniel
2005-06-27 13:42:57 +00:00
Daniel Veillard
1b75c3bd69 avoid name glob in agruments as it matches the glob() routine. first steps
* include/libxml/valid.h valid.c: avoid name glob in agruments as
  it matches the glob() routine.
* runtest.c Makefile.am: first steps toward a C regression test
  framework.
Daniel
2005-06-26 21:49:08 +00:00
Daniel Veillard
da6f4af38a applied patch from Rob Richards for removal of ID (and xml:id) applied
* tree.c valid.c: applied patch from Rob Richards for removal
  of ID (and xml:id)
* xmlreader.c: applied patch from James Wert implementing
  xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml
Daniel
2005-06-20 17:17:54 +00:00
William M. Brack
d6e347e865 Applied Daniel's fix for memory leak in dtd prefix (bug 300550). minor
* valid.c: Applied Daniel's fix for memory leak in dtd
  prefix (bug 300550).
* xpath.c: minor change to comment only
2005-04-15 01:34:41 +00:00