Log

Author Commit Date CI Message
Nick Wellnhofer 5e4b751f 2022-10-22T02:17:39 xinclude: Make xmlXIncludeCopyNode return a node list Convert callers of xmlXIncludeCopyNode to handle node lists.
Nick Wellnhofer 64eaf4d4 2022-10-21T16:05:29 xinclude: Make xmlXIncludeCopyNode iterate all descendants
Nick Wellnhofer 4d7524af 2022-10-21T16:46:38 xinclude: Ignore XML_XINCLUDE_START in xmlXIncludeCopyXPointer The XPath engine shouldn't return such nodes anyway.
Nick Wellnhofer ea7c9fb5 2022-10-22T16:48:58 xinclude: Don't create result doc for test with errors
Nick Wellnhofer 5f664ab2 2022-10-21T16:17:48 xinclude: Rework xmlXIncludePreProcessNode Rename xmlXIncludePreProcessNode to xmlXIncludeExpandNode. Search the include table for an already existing entry. Also load the included items in xmlXIncludeExpandNode and remove the second phase in xmlXIncludeDoProcess.
Nick Wellnhofer c99cde3f 2022-10-22T16:59:35 xinclude: Also test error messages The reader interface with XIncludes is somewhat broken and can generate different error messages. Start to move tests which are sketchy with reader to a separate directory.
Nick Wellnhofer 938105b5 2022-10-21T15:56:12 Revert "xinclude: Fix regression with nested includes" This reverts commit 7f04e297318b1b908cec20711f74f75625afed7f which caused memory errors. See #424.
Nick Wellnhofer e85f9b98 2022-10-19T02:47:30 xmllint: Improve handling of empty XPath node sets Don't return an error if the result is an empty node set. Suppress the "XPath set is empty" message in quiet mode. Fixes #180.
Nick Wellnhofer 530938b4 2022-10-18T18:56:56 cmake: Build static library with -DLIBXML_STATIC Fix scope of target_compile_definitions command. Fixes #425.
Nick Wellnhofer 7f04e297 2022-10-18T18:40:00 xinclude: Fix regression with nested includes This reverts commits 74dcc10b and 87d20b55. Fixes #424.
Nick Wellnhofer 644a89e0 2022-08-31T22:11:25 [CVE-2022-40304] Fix dict corruption caused by entity reference cycles When an entity reference cycle is detected, the entity content is cleared by setting its first byte to zero. But the entity content might be allocated from a dict. In this case, the dict entry becomes corrupted leading to all kinds of logic errors, including memory errors like double-frees. Stop storing entity content, orig, ExternalID and SystemID in a dict. These values are unlikely to occur multiple times in a document, so they shouldn't have been stored in a dict in the first place. Thanks to Ned Williamson and Nathan Wachholz working with Google Project Zero for the report!
Nick Wellnhofer ffaec758 2022-08-25T17:43:08 Fix integer overflows with XML_PARSE_HUGE Also impose size limits when XML_PARSE_HUGE is set. Limit size of names to XML_MAX_TEXT_LENGTH (10 million bytes) and other content to XML_MAX_HUGE_LENGTH (1 billion bytes). Move some the length checks to the end of the respective loop to make them strict. xmlParseEntityValue didn't have a length limitation at all. But without XML_PARSE_HUGE, this should eventually trigger an error in xmlGROW. Thanks to Maddie Stone working with Google Project Zero for the report!
Nick Wellnhofer 1a2d8ddc 2022-10-11T13:02:47 parser: Fix potential memory leak in xmlParseAttValueInternal Fix memory leak in case xmlParseAttValueInternal is called with a NULL `len` a non-NULL `alloc` argument. This static function is never called with such arguments internally, but the misleading code should be fixed nevertheless. Fixes #422.
Nick Wellnhofer 5bfaf230 2022-10-11T13:00:33 win32: Fix build with VS2013 Should fix #420.
Nick Wellnhofer e2bae1bc 2022-09-20T14:34:20 autotools: Don't use version script on Windows A feature test would be better, but blacklisting Windows platforms seems good enough for now.
Nick Wellnhofer 796c830a 2022-09-20T14:30:19 cmake: Set SOVERSION Fixes #410.
Nick Wellnhofer 1d4f5d24 2022-09-13T16:40:31 schemas: Fix null-pointer-deref in xmlSchemaCheckCOSSTDerivedOK Found by OSS-Fuzz.
Nick Wellnhofer f2392dc4 2022-09-09T13:51:58 gitlab-ci: Allow cast-align warnings from clang
Nick Wellnhofer a9669679 2022-09-09T01:44:00 error: Don't use initGenericErrorDefaultFunc The code in xmlInitParser did only set the error handler if it was NULL which should never happen.
Nick Wellnhofer 27c8ba60 2022-09-07T22:34:42 xpath: Lower XPath recursion limit on Windows
Nick Wellnhofer f597eff8 2022-09-07T18:18:06 autotools: Fix winsock detection Hardcode the required library on MinGW because winsock uses non-standard calling conventions on 32-bit Windows which makes AC_SEARCH_LIBS fail. Should fix #406.
Nick Wellnhofer 16d3e8b2 2022-09-07T18:10:03 autotools: Only add network libraries if HTTP/FTP enabled
Nick Wellnhofer ae98a5b4 2022-09-07T12:10:39 gitlab-ci: Fix tar invocation
Nick Wellnhofer c52dd494 2022-09-06T23:27:01 gitlab-ci: Move MSVC test to separate script
Nick Wellnhofer ea78427d 2022-09-06T22:46:07 gitlab-ci: Fix SUFFIX, remove MINGW_PATH
Nick Wellnhofer e4bdbf3d 2022-09-06T21:29:24 gitlab-ci: Consolidate CMake test scripts
Nick Wellnhofer 861466bf 2022-09-06T20:32:08 gitlab-ci: Only install MinGW autotools if needed
Nick Wellnhofer 5ff3baf0 2022-09-06T17:33:38 python: Create .pyd on Windows
Nick Wellnhofer e86ede09 2022-09-06T18:24:25 gitlab-ci: Only install cmake MinGW package if needed On MinGW, cmake requires curl which requires nghttp2 which requires libxml2. But having a system libxml2 interferes with the Python tests for now. Ultimately, we should use Python's os.add_dll_directory() on Windows. I'm not sure why the current solution using PATH even works.
Nick Wellnhofer 7ab3228f 2022-09-06T18:32:55 gitlab-ci: Install 7-Zip using the .msi So we don't need cmake to extract a file.
Nick Wellnhofer fec85df1 2022-09-06T18:50:23 xmllint: Document --quiet option
Nick Wellnhofer ea8f7c92 2022-09-06T00:47:00 autotools: Disable parallel Python build Makefile rules with multiple output files don't work reliably with parallel builds. There are several ways to fix this issue with GNU Make, but they aren't portable. I'd be really interested in a totally reliable, cross-platform solution to this problem. .NOTPARALLEL is also understood by BSD make, at least.
Nick Wellnhofer 9d19c169 2022-09-06T00:21:28 python: Don't output missing generators during build
Nick Wellnhofer a41878bd 2022-09-05T23:16:23 build: Remove check for broken ss_family This only seemed to affect ancient AIX systems.
Nick Wellnhofer c63b2692 2022-09-05T22:50:45 gitlab-ci: Disable MSan for now MSan seems broken on Ubuntu 22.04.
Nick Wellnhofer ad338459 2022-09-05T21:16:20 autotools: Fix bug with multiline arguments Should fix #404.
Nick Wellnhofer adcf399b 2022-09-05T15:36:13 autotools: Try to fix bug with multiline arguments Only happens with older autoconf?
Nick Wellnhofer 30c8d9bb 2022-09-05T02:02:54 http: Simplify IPv6 checks This should also enable IPv6 support on Windows. Untested and mostly useless anyway, since we don't support HTTPS.
Nick Wellnhofer 9e5a016e 2022-09-05T01:08:33 autotools: Fix network checks on Windows
Nick Wellnhofer 98acf28f 2022-09-04T22:12:32 Use $MSYSTEM and 'bash -lc' in MinGW CI Setting the $MSYSTEM environment variable and invoking shell scripts with 'bash -lc' sets up the correct MinGW environment. See https://www.msys2.org/docs/ci/
Nick Wellnhofer 5d32b126 2022-09-04T22:05:16 Fix detection of GNU libiconv GNU libiconv prefixes symbols with "lib".
Nick Wellnhofer 460ba0cb 2022-09-04T16:00:19 Add CI job for MinGW/Autotools
Nick Wellnhofer 0cc9c1d1 2022-09-04T15:35:47 Consolidate CI scripts
Nick Wellnhofer 89aeb4df 2022-09-04T18:44:52 Allow empty MINGW_PACKAGE_PREFIX
Nick Wellnhofer efc0e85c 2022-09-04T15:26:47 Move Dockerfile to .gitlab-ci directory
Nick Wellnhofer 02e12371 2022-09-04T20:12:18 cmake: Fix Python installation Don't install into ${Python_SITEARCH} for now.
Nick Wellnhofer 243fdbc3 2022-09-04T19:13:14 cmake: Don't check for Python 2
Nick Wellnhofer b0556e14 2022-09-04T18:49:23 testapi: Disable on Windows for now It's incredibly slow for some reason.
Nick Wellnhofer 27b2b864 2022-09-04T18:32:55 configure.ac: Also check for MSYS host
Nick Wellnhofer 3a1c5ee7 2022-09-04T18:22:30 Disable fuzzer tests if glob.h wasn't found
Nick Wellnhofer ad6f10a8 2022-09-04T17:21:51 Fix Python build on Windows Build Python bindings with -no-undefined on Windows. Remove libs that should already be set by PKG_CHECK_MODULE.
Nick Wellnhofer 22b82d14 2022-09-04T17:19:58 Improve network library detection
Nick Wellnhofer 0d901258 2022-09-04T16:41:43 Fix Windows compiler warnings in python/types.c
Nick Wellnhofer 71736b4e 2022-09-04T16:16:37 Fix libxml_PyFileGet Broken in commit 75cdb6dd.
Nick Wellnhofer f9fcb2c4 2022-09-04T04:47:48 Revert "CI job for MingW64/Autotools" This reverts commit 6bfebf4d5886bd5f2a3979ceedc27ebd6c3c5009.
Nick Wellnhofer 6bfebf4d 2022-09-04T04:04:45 CI job for MingW64/Autotools
Nick Wellnhofer 0048fd0a 2022-09-04T03:48:49 Detect ws2_32 with AC_SEARCH_LIBS
Nick Wellnhofer 60b03c9e 2022-09-04T03:31:27 Rework network configure checks Migrate to AC_SEARCH_LIBS. Don't pollute LIBS.
Nick Wellnhofer fe02289f 2022-09-04T03:19:01 Remove arg cast configure checks We can simply cast to non-const char * unconditionally.
Nick Wellnhofer 2d164d68 2022-09-04T02:54:20 Fix dlopen check
Nick Wellnhofer 1e60c768 2022-09-04T01:49:41 Remove HAVE_WIN32_THREADS configuration flag Check for LIBXML_THREAD_ENABLED and _WIN32 instead.
Nick Wellnhofer 13a66378 2022-09-04T01:05:51 Remove BeOS support Haiku shouldn't be affected.
Nick Wellnhofer 38290ec1 2022-09-04T00:49:36 Rework dlopen and pthread detection Migrate to AC_SEARCH_LIBS. Remove check for ancient GCC 3.3.
Nick Wellnhofer e47df37b 2022-09-04T00:46:32 Fix test in configure.ac Broken in commit b4847d60.
Nick Wellnhofer 202b8e19 2022-09-01T06:52:02 cmake: Enable GCC compiler warnings
Nick Wellnhofer 81621b1f 2022-09-02T18:38:33 Fix compiler warnings in SAX2.c
Nick Wellnhofer caef8563 2022-09-02T17:26:47 Move automata test to runtest.c
Nick Wellnhofer c59df16d 2022-09-02T17:00:05 Always link with -no-undefined This is a good idea to detect errors early.
Nick Wellnhofer 513d65fe 2022-09-02T16:45:06 Use AM_CFLAGS and AM_LDFLAGS consistently
Nick Wellnhofer 75cdb6dd 2022-09-02T16:47:25 Fix unused variable warning in python/types.c
Nick Wellnhofer 1bd24d44 2022-09-02T17:59:09 Fix compiler warning in examples
Nick Wellnhofer d0ab5c4f 2022-09-02T17:47:48 Fix compiler warnings in fuzzing code
Nick Wellnhofer 17d505e2 2022-09-02T17:33:42 Remove -Wredundant-decls Some Python headers contain redundant redeclarations.
Nick Wellnhofer 4d911ebc 2022-09-02T16:14:04 Call AC_CHECK_* with multiple arguments
Nick Wellnhofer 75bd98a5 2022-09-02T05:09:42 Remove unused code in nanohttp.c This was hidden behind an undocumented flag RES_USE_INET6.
Nick Wellnhofer 5bffa33a 2022-09-02T05:03:03 Stop including sys/types.h
Nick Wellnhofer 05fc6ee2 2022-09-02T04:45:27 configure.ac: Remove checks for unused programs
Nick Wellnhofer 16ae1d8f 2022-09-02T04:33:54 Don't define WIN32 macro
Nick Wellnhofer 0f77167f 2022-09-02T02:08:44 Rework library detection in configure.ac Migrate to AC_CHECK_LIB and AC_SEARCH_LIBS. Don't pollute CPPFLAGS, LDFLAGS and LIBS.
Nick Wellnhofer f2dda8e8 2022-09-02T00:51:46 Rearrange configure.ac Move some sections around and align headers.
Nick Wellnhofer 6a5c88cc 2022-09-02T00:40:03 Consolidate zlib and lzma detection Don't depend on a global variable for flag backup. Now the blocks can be moved freely around.
Nick Wellnhofer 59f2f60e 2022-09-02T00:27:57 Remove "runtime debugging" This doesn't seem useful as configuration option.
Nick Wellnhofer b4847d60 2022-09-02T00:17:43 Consolidate simple API modules in configure.ac Add some small consistency fixes.
Nick Wellnhofer 88a8757b 2022-09-01T23:44:00 Fix dependency resolution in configure.ac This mainly fixes the case of disabling a single module, for example ./configure --without-xpath Before, there were still a few cases where a module wouldn't be disabled unless another module depending on it were disabled, too. Finding the correct options to really disable some modules could be extremely hard for casual users. Now every --without option should reliably disable dependent modules unless they were specifcally requested. In the latter case, a warning is printed consistently. Some missing dependencies were added and the logic was consolidated in a single code section.
Nick Wellnhofer c7149792 2022-09-01T23:15:35 Fix --with-valid --without-regexps build This build config resulted in segfaults in 'runtest' because a special xmlElementContentPtr showed up in a few places. I'm not sure if this is the right fix. An error message was changed to conform to the --with-regexps build. There are still a few missing validity errors, so the tests don't pass.
Nick Wellnhofer 884e142d 2022-09-01T22:44:02 Fix --with-schemas --without-xpath build xmlXPathInit must be called for schemas.
Nick Wellnhofer 14d38a71 2022-09-01T05:53:51 Don't build unneeded .c source files
Nick Wellnhofer bdcf842c 2022-09-01T20:45:35 Move xmlIsXHTML to tree.c It's declared in tree.h and not guarded by LIBXML_OUTPUT_ENABLED like the other functions in xmlsave.c.
Nick Wellnhofer 6843fc72 2022-09-01T02:58:00 Remove or annotate char casts
Nick Wellnhofer 2cac6269 2022-09-01T03:14:13 Don't use sizeof(xmlChar) or sizeof(char)
Nick Wellnhofer ad338ca7 2022-09-01T01:18:30 Remove explicit integer casts Remove explicit integer casts as final operation - in assignments - when passing arguments - when returning values Remove casts - to the same type - from certain range-bound values The main motivation is that these explicit casts don't change the result of operations and only render UBSan's implicit-conversion checks useless. Removing these casts allows UBSan to detect cases where truncation or sign-changes occur unexpectedly. Document some explicit casts as truncating and add a few missing ones.
Nick Wellnhofer aeb69fd3 2022-09-01T02:33:16 Fix overflow check in SAX2.c
Nick Wellnhofer 65dc8a63 2022-09-01T00:13:19 Make xmlNewSAXParserCtx take a const sax handler Also improve documentation.
Nick Wellnhofer ce8f3d11 2022-08-29T23:53:40 Fix libxml_PyFileGet with stdout on macOS macOS returns O_RDWR for standard file descriptors, but fails to write to stdout or stderr when opened with fdopen(dup_fd, "rw").
Nick Wellnhofer b1a09618 2022-08-29T17:21:19 Migrate from PyEval_ to PyObject_ PyEval_ functions are deprecated. Fixes #208.
Nick Wellnhofer ae2b8021 2022-08-29T16:13:50 Cleanup distribution settings in Makefile.am - Remove useless nodist_ prefix - Prefer dist_ prefix over EXTRA_DIST - Remove .in files from EXTRA_DIST
Nick Wellnhofer b0916e0e 2022-08-26T17:57:58 Also clean *.pyc files for Python 2
Nick Wellnhofer aa383e66 2022-08-26T17:37:09 Don't distribute libxml2.spec This is a generated file.
Xi Ruoyao df003c0a 2022-08-26T10:09:13 build: require automake-1.16.3 or later We need https://git.savannah.gnu.org/cgit/automake.git/commit/?id=e21d46f to avoid an error like checking for PYTHON... no configure: error: Package requirements (python-3.1) were not met: No package 'python-3.1' found With python-3.10. Partially fixes #392. Note that there is another issue with python-3.10, like: checking for python... no checking for python2... no checking for python3... no checking for python3.9... no ... configure: error: no suitable Python interpreter found Fixing this one will need to require bumping automake version again, but the automake version containing this fix is not released yet. And, this is rather minor because most environment has "python3" as a symlink to "python3.10" or whatever the latest python3.x installed.
Nick Wellnhofer 47803697 2022-08-26T16:31:55 Work around strange -fsanitize=integer issue With clang 14, __attribute__ ((nosanitize)) stops working with -fsanitize=undefined,integer Using the following works (and should be equivalent) -fsanitize=undefined,unsigned-integer-overflow,implicit-conversion