Log

Author Commit Date CI Message
Damjan Jovanovic 37ebf8a8 2021-05-31T07:45:18 Document support for the non-standard escape sequences. Support non-BMP code points in surrogate pairs of '\uXXXX\uXXXX'.
Damjan Jovanovic b66c1961 2021-05-30T11:11:33 Use strtoul() instead of sscanf, and correct data types that break GCC.
Damjan Jovanovic ec8ff95c 2021-05-29T16:36:44 Add support for some non-standard escapes in regular expressions. This adds support for some non-standard escape sequences observed in Microsoft's MSXML DLLs and used by Windows apps, and thus needed by Wine. Some are also used in other XML implementations, eg. Java's. This isn't intended to be final. We probably wish to toggle these non-standard escape sequences on and off somehow, as needed by the caller. Further discussion: https://gitlab.gnome.org/GNOME/libxml2/-/issues/260
Mike Dalessio d7b287b9 2021-07-17T14:36:53 htmlParseComment: handle abruptly-closed comments See guidance provided on abrutply-closed comments here: https://html.spec.whatwg.org/multipage/parsing.html#parse-error-abrupt-closing-of-empty-comment
Mike Dalessio 24cdc890 2021-07-17T14:06:49 test coverage for abruptly-closed comments These establish baseline behavior so that the subsequent commit is clear about the behavior it will modify.
Damjan Jovanovic 2fe372a0 2021-08-21T07:21:50 Properly fold whitespace around the QName value when validating an XSD schema. (May also need fixing in other places.) Issue: 239
Damjan Jovanovic 966b0f21 2021-08-19T02:46:32 Add whitespace folding for some atomic data types that it's missing on. XSD validation fails when some atomic types contain surrounding whitespace even though XML Schema Part 2: Datatypes Second Edition, section 4.3.6 says they should be collapsed. Fix this. (I am not sure whether the test is correct.) Issue: #278
Oliver Diehl e5cdb02d 2022-01-12T08:54:56 Add let variable tag support
Oliver Diehl 2cc93f77 2022-01-11T14:43:44 Add value-of tag support
Oliver Diehl 85cb388f 2022-01-11T13:51:13 Replaced tabs by 4 spaces
Nick Wellnhofer 5c009c66 2022-03-02T01:31:56 Remove obsolete AC_HEADER checks
Nick Wellnhofer 72119afe 2022-03-02T01:14:08 Don't check for standard C89 library functions Don't check for - fprintf - localtime - printf - rand - sprintf - srand - sscanf - strftime - time - vfprintf - vsprintf If the C99 functions snprintf and vsnprintf are missing, Trio is enabled.
Nick Wellnhofer 776d15d3 2022-03-02T00:29:17 Don't check for standard C89 headers Don't check for - ctype.h - errno.h - float.h - limits.h - math.h - signal.h - stdarg.h - stdlib.h - string.h - time.h Stop including non-standard headers - malloc.h - strings.h
Nick Wellnhofer 8f3bd262 2022-03-01T17:18:56 Remove broken VxWorks support
Nick Wellnhofer 041ed3d6 2022-03-01T17:17:19 Remove broken Mac OS 9 support
Nick Wellnhofer 551b558d 2022-03-01T17:15:12 Remove useless call to xmlRelaxNGCleanupTypes xmlRelaxNGCleanupTypes is called from xmlCleanupParser later.
Nick Wellnhofer 89d9ef3e 2022-03-01T15:14:00 Reset last error in xmlCleanupGlobals Before, we tried to reset the last error in xmlCleanupParser. But if xmlCleanupParser wasn't called from the main thread, this would reset the thread-local error object. xmlCleanupGlobals has access to the error object of the main thread and can reset it reliably.
Nick Wellnhofer ebc50097 2022-03-01T13:57:16 Warn when using deprecated functions from Python bindings This requires Python code to be run with -Wd.
Nick Wellnhofer b66ce0bb 2022-03-01T12:39:02 Don't include ICU headers in public headers There's no need to make these implementation details public.
Nick Wellnhofer 50f6feb9 2022-03-01T00:05:54 Remove broken bakefile support
Nick Wellnhofer d7c7425c 2022-03-01T00:03:24 Remove broken Visual Studio 2010 support
Nick Wellnhofer b094e814 2022-03-01T00:02:59 Remove broken Windows CE support
Nick Wellnhofer 655cf3f4 2022-02-28T23:39:00 Always fopen files with "rb" We never want translation of newlines when reading files, so it should be safe to always specify "rb". On sane platforms, the "b" flag is simply ignored.
Nick Wellnhofer 3f8655db 2022-02-28T23:22:50 Remove __DJGPP__ checks Drop broken support for DJGPP.
Nick Wellnhofer 2489c1d0 2022-02-28T22:42:10 Remove useless __CYGWIN__ checks From what I can tell, some really early Cygwin versions from around 1998-2000 used to erroneously define _WIN32. This was eventually fixed, but these days, the `defined(_WIN32) && !defined(__CYGWIN__)` idiom is unnecessary. Now, we only check for __CYGWIN__ in xmlexports.h when deciding whether to use __declspec.
Nick Wellnhofer ea6e8f99 2021-12-20T00:34:58 Fix certain combinations of regex range quantifiers Fix regex transitions that have both min/max and a counter. In this case, we want to save the regex state before incrementing the counter. Fixes #301 and the issue reported here: https://mail.gnome.org/archives/xml/2016-April/msg00017.html
Nick Wellnhofer 382fb056 2021-12-20T00:31:41 Fix range quantifier on subregex Make sure to add counted exit transitions before other counter transitions. Otherwise, we won't backtrack correctly. Fixes #65.
Mike Dalessio 48ed5a74 2022-02-21T09:35:59 Update `xmlStrlen()` to use POSIX / ISO C `strlen()` This should be faster on a wide range of platforms. Closes #212
Nick Wellnhofer 5bc5f076 2022-02-24T18:34:39 Fix build with older Python versions ModuleNotFoundError is only available since Python 3.6. Use the superclass ImportError instead. Fixes commit 3cc64a89. Fixes #347.
Nick Wellnhofer c41bc10d 2022-02-22T19:57:12 Fix unused variable warnings with disabled features
Nick Wellnhofer 4fd69f3e 2022-02-22T18:15:53 Fix recovery from invalid HTML start tags Only try to parse a start tag if there's a '<' followed by an ASCII letter. This is more in line with HTML5 and the old behavior in recovery mode. Emit a literal '<' if the following character is invalid. Fixes #101. Fixes #339.
Nick Wellnhofer b057239b 2022-02-22T11:52:38 More fixes to --without-valid build Fix runtest and Python bindings when building --without-valid. The Python tests still fail. There doesn't seem to be a mechanism to disable tests depending on feature flags.
Nick Wellnhofer d05317ce 2022-02-22T11:51:08 Fix --without-valid build Regressed in commit 652dd12a.
Nick Wellnhofer f5509772 2022-02-20T22:06:16 Fix documentation in entities.c
Nick Wellnhofer b26d581d 2022-02-20T21:26:50 Add note about optimization flags
Nick Wellnhofer 6117700e 2022-02-20T20:56:40 Remove special configuration for certain maintainers
Nick Wellnhofer 004fe9de 2022-02-20T19:02:31 Deprecate IDREF-related functions in valid.h These functions are only needed internally for validation. xmlGetRefs is inherently unsafe because the ref table isn't updated if attributes are removed (unlike the ids table). None of the Ubuntu 20.04 packages depending on libxml2 use any of these functions (except xmlFreeRefTable in libxslt), so it seems perfectly safe to deprecate them. Remove xmlIsRef and xmlRemoveRef from the Python bindings.
Nick Wellnhofer 61de9297 2022-02-20T20:59:14 Deprecate all functions in DOCBparser.h
Nick Wellnhofer aeaf02c0 2022-02-20T20:51:20 Disable docbook support by default The docbook code is broken and has been deprecated for years.
Nick Wellnhofer cf4893f7 2022-02-20T19:56:41 Deprecate legacy functions
Nick Wellnhofer 96889d19 2022-02-20T17:36:28 Disable legacy support by default If you need support for legacy APIs, you have to enable it explicitly: ./configure --with-legacy
Nick Wellnhofer 9e0ca5a1 2022-02-20T19:29:01 Deprecate all functions in nanoftp.h
Nick Wellnhofer a0a0f3be 2022-02-20T17:33:47 Disable FTP support by default In the unlikely case that you really need FTP support, you have to enable it explicitly with: ./configure --with-ftp
Nick Wellnhofer a2fe74c0 2022-02-20T18:19:27 Add XML_DEPRECATED macro __attribute__((deprecated)) is available since at least GCC 3.1, so an exact version check is probably unnecessary.
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.
Nick Wellnhofer ce0871e1 2022-02-20T16:44:41 Only warn on invalid redeclarations of predefined entities Downgrade the error message to a warning since the error was ignored, anyway. Also print the name of redeclared entity. For a proper fix that also shows filename and line number of the invalid redeclaration, we'd have to - pass the parser context to the entity functions somehow, or - make these functions return distinct error codes. Partial fix for #308.
Nick Wellnhofer e03590c9 2022-02-08T02:42:30 Don't add IDs containing unexpanded entity references When parsing without entity substitution, IDs or IDREFs containing unexpanded entity reference like "abc&x;def" could be created. We could try to expand these entities like in validation mode, but it seems safer to honor the request not to expand entities. We silently ignore such IDs for now.
Nick Wellnhofer 274a1b5b 2022-02-20T16:05:53 Remove unneeded code in xmlreader.c Now that no references to ID and IDREF attributes are stored in streaming validation mode, there's no need to try and remove them. Also remove xmlTextReaderFreeIDTable which was identical to xmlFreeIDTable.
Nick Wellnhofer d7cb33cf 2022-01-13T17:06:14 Rework validation context flags Use a bitmask instead of magic values to - keep track whether the validation context is part of a parser context - keep track whether xmlValidateDtdFinal was called This allows to add addtional flags later. Note that this deliberately changes the name of a public struct member, assuming that this was always private data never to be used by client code.
Nick Wellnhofer a075d256 2022-02-19T19:05:45 Release v2.9.13
Nick Wellnhofer 04d4124c 2022-02-19T18:50:10 Update news and rebuild documentation
Nick Wellnhofer 652dd12a 2022-02-08T03:29:24 [CVE-2022-23308] Use-after-free of ID and IDREF attributes If a document is parsed with XML_PARSE_DTDVALID and without XML_PARSE_NOENT, the value of ID attributes has to be normalized after potentially expanding entities in xmlRemoveID. Otherwise, later calls to xmlGetID can return a pointer to previously freed memory. ID attributes which are empty or contain only whitespace after entity expansion are affected in a similar way. This is fixed by not storing such attributes in the ID table. The test to detect streaming mode when validating against a DTD was broken. In connection with the defects above, this could result in a use-after-free when using the xmlReader interface with validation. Fix detection of streaming mode to avoid similar issues. (This changes the expected result of a test case. But as far as I can tell, using the XML reader with XIncludes referencing the root document never worked properly, anyway.) All of these issues can result in denial of service. Using xmlReader with validation could result in disclosure of memory via the error channel, typically stderr. The security impact of xmlGetID returning a pointer to freed memory depends on the application. The typical use case of calling xmlGetID on an unmodified document is not affected.
Nick Wellnhofer d19bab68 2022-02-19T19:26:10 Fix fuzz/.gitignore after fixing VPATH build
Nick Wellnhofer f2ad86fa 2022-02-17T19:05:26 Remove SVN keyword anchors
Nick Wellnhofer b041d829 2022-02-16T19:55:30 Remove xmlwin32version.h This file was undocumented and never used anywhere. Maybe users were supposed to rename this file to xmlversion.h manually. These days, both CMake and win32/configure.js generate xmlversion.h from xmlversion.h.in, just like the Autotools build.
Nick Wellnhofer 176115c6 2022-02-14T22:49:04 Fix source URL in libxml.spec.in
Nick Wellnhofer 86266487 2022-02-14T18:06:38 Fix fuzzer test with VPATH build Also fixes make distcheck.
Nick Wellnhofer 85a35ba0 2022-02-14T17:44:29 Support custom prefix when installing Python module Also fixes make distcheck.
Nick Wellnhofer 46084436 2022-02-14T03:28:51 Remove Makefile.win A Makefile for Visual C++ 5.0, last changed 23 years ago.
Nick Wellnhofer a20a6022 2022-02-14T03:40:59 Fix distribution after README change
Nick Wellnhofer 411f9803 2022-02-14T01:30:37 Rework README - Merge INSTALL.libxml2, CONTRIBUTING and AUTHORS into README - Convert to Markdown - Redact and update content - Update links
Nick Wellnhofer e16d729d 2022-02-14T01:31:47 Remove README.cvs-commits
Nick Wellnhofer 8eb06937 2022-02-14T01:01:23 Remove outdated ChangeLog code The ChangeLog is from pre-Git times.
Nick Wellnhofer 7fe9addc 2022-02-13T23:29:51 Remove CVS and SVN-related code
Nick Wellnhofer 10891111 2022-02-13T22:52:53 Redirect links to xmlsoft.org Documentation and releases are now available on gitlab.gnome.org.
Nick Wellnhofer 4f2693a1 2022-02-13T22:57:34 Remove README.docs This was just a partial copy of the main README.
Nick Wellnhofer 4a0c0e63 2022-02-13T22:52:14 Remove MAINTAINERS Maintainers are listed in libxml2.doap.
Nick Wellnhofer b0e6eb97 2022-02-13T22:51:26 Remove xmltutorial.pdf We already have an HTML version.
Nick Wellnhofer daf2d9c3 2022-02-08T04:30:29 Fix regression in RelaxNG pattern matching XML_SCHEMAS_QNAME is not a string-derived type. Other types up to XML_SCHEMAS_ENTITIES are. Should fix #224.
Nick Wellnhofer d54564ea 2022-02-12T21:38:19 Remove .travis.yml
Nick Wellnhofer 0a6a79b2 2022-02-12T21:36:27 Try again to only build GitLab Pages on main repo
Nick Wellnhofer a3aca203 2022-02-12T21:33:53 Try again to only build GitLab Pages on main repo
Nick Wellnhofer 15111c82 2022-02-12T21:25:25 Only build GitLab Pages on main repo
Nick Wellnhofer 2017cae6 2022-02-12T20:02:51 Upload documentation to GitLab pages
Nick Wellnhofer be889b65 2022-01-26T16:35:18 Make xmlFuzzReadString return a zero size in error case Avoids use of uninitialized memory.
Nick Wellnhofer 57b3abd5 2022-02-07T22:09:25 Fix xmlSetTreeDoc with entity references The children member of entity reference nodes points to the entity declaration and must never be followed when traversing a tree. In the worst case, this could lead to an infinite loop. It's somewhat unclear how moving entity references to other documents should work exactly. For now we simply set the children pointer to NULL to avoid a reference to the original document. Fixes #42.
Nick Wellnhofer 8be44aeb 2022-02-07T20:54:33 Fix "xmllint -" Short-lived regression from commit d12be00d.
Nick Wellnhofer 9edc20c1 2022-02-07T20:38:30 Fix double counting of CRLF in comments Fixes #151.
Nick Wellnhofer b14649e3 2022-02-07T19:54:20 Remove old ChangeLog This was probably generated from SVN until 2009. Changes are now tracked in NEWS. Fixes #261.
Nick Wellnhofer fcd4c5b8 2022-02-07T19:22:45 Document how to escape XML_CATALOG_FILES Fixes #309.
Nick Wellnhofer ea53fc18 2022-02-07T18:24:03 Properly handle nested documents in xmlFreeNode Client code should never add document nodes as children of other nodes, but even our own XPointer code has a bug that can produce such trees. Make sure to really free nested documents. Also see commits 0815302d and 0762c9b6. Should fix #269.
Nick Wellnhofer 96535657 2022-02-07T15:26:33 Make sure to grow input buffer in xmlParseMisc Otherwise, large amount of whitespace could lead to documents not being parsed correctly. Fixes #299.
Nick Wellnhofer 9b8ef34d 2022-02-04T14:42:16 Fix unused function warning in testapi.c
Nick Wellnhofer d12be00d 2022-02-04T14:13:59 Don't ignore xmllint options after "-" There's no reason to ignore options after "-". This was probably confused with the "--" mechanism which xmllint doesn't implement. Fixes #290.
Nick Wellnhofer 5408c10c 2022-02-04T14:00:09 Don't normalize namespace URIs in XPointer xmlns() scheme Namespace URIs should be compared without escaping or unescaping: https://www.w3.org/TR/REC-xml-names/#NSNameComparison Fixes #289.
Nick Wellnhofer 1c7d91ab 2022-02-03T23:31:19 Fix handling of XSD with empty namespace An empty namespace means no default namespace. Fixes #303.
Nick Wellnhofer f480f750 2022-02-03T14:43:17 Update NewsML DTD in test suite Switch to version 1.2 which has a clearer license. Fixes #291.
Nick Wellnhofer 247cfa27 2022-02-01T16:21:10 Fix parsing of xmllint --maxmem option Fixes #195.
Nick Wellnhofer 96dc7f4a 2022-02-01T16:15:51 Also register HTML document nodes Fixes #196.
Nick Wellnhofer 18d1f9d4 2022-02-01T15:56:21 Add more checks for malloc failures in xmllint.c Also fix a few of the existing checks. Fixes #197. Fixes #198.
Nick Wellnhofer eab86522 2022-01-31T14:45:09 Make xmllint return an error if arguments are missing Before, xmllint would only return an error code if the argument list was completely empty. Fixes #285.
Nick Wellnhofer 6010a536 2022-01-28T16:27:12 Avoid potential integer overflow in xmlstring.c For historical reasons, the string API operates with int indices which can overflow, especially on 64-bit systems. libxml2 always made the tacit assumption that strings will be never larger than INT_MAX bytes. It should be considered a bug if any part of the code can produce larger strings, whether they are externally visible or not. Likewise, API users are expected not to supply strings larger than INT_MAX bytes. This requirement isn't documented. But even if it was, we must handle larger strings passed in by accident without causing memory errors. - xmlStrndup, xmlCharStrndup, xmlUTF8Strndup Avoid integer overflow if len == INT_MAX. - xmlStrlen, xmlUTF8Strsize, xmlUTF8Strloc Avoid integer overflow by using size_t for index. If an input string larger than INT_MAX bytes is detected, these functions now return 0 instead of a wrong and possibly negative value. - xmlCheckUTF8 Avoid integer overflow by limiting index range. - xmlStrncat, xmlStrncatNew, xmlEscapeFormatString Avoid integer overflow. Return NULL instead of producing strings larger than INT_MAX bytes.
David Kilzer 8f5ccada 2021-07-07T19:24:36 xmlAddChild() and xmlAddNextSibling() may not attach their second argument Use the return value of xmlAddChild() and xmlAddNextSibling() instead of the second argument directly. Found by OSS-Fuzz. Fixes #316
Nick Wellnhofer 53983804 2022-01-25T03:08:22 Run CI tests with UBSan implicit-conversion checks This enables the remaining checks from the "integer" group: - implicit-unsigned-integer-truncation - implicit-signed-integer-truncation - implicit-integer-sign-change These checks can find all kinds of bugs and only require explicit casts if integer truncation or sign change is really intended.
Nick Wellnhofer a647e430 2022-01-25T02:59:40 Fix casting of line numbers in SAX2.c The line member is an unsigned short. Avoids integer conversion warnings with UBSan. Also use USHRT_MAX instead of hard-coded constant.
Nick Wellnhofer 67c2e78b 2022-01-25T02:44:37 Fix integer conversion warnings in hash.c Use unsigned long for temporary variable to avoid integer conversion warnings with UBSan. Note that this does change the computation of hash values for input bytes larger than 0x7F. Before, these bytes were first converted to a (typically) signed char with a negative value, then to a large unsigned long near ULONG_MAX. I doubt that this was intentional. Input bytes larger than 0x7F are now converted to unsigned long unchanged.
Nick Wellnhofer 21217dd9 2022-01-25T02:34:40 Add explicit casts in runtest.c Avoids integer conversion warnings with UBSan.
Nick Wellnhofer 7abc6e6a 2022-01-25T02:27:53 Fix integer conversion warning in xmlIconvWrapper Use size_t for return value of iconv(3) to avoid an UBSan integer conversion warning.
Nick Wellnhofer f4a74bf0 2022-01-25T02:21:05 Add suffix to unsigned constant in xmlmemory.c Avoids an integer conversion warning with UBSan.
Nick Wellnhofer 5948abfe 2022-01-25T01:59:03 Add explicit casts in testchar.c Avoids integer conversion warnings with UBSan.