Log

Author Commit Date CI Message
Nick Wellnhofer 075cee9e 2022-10-29T15:38:16 xinclude: Fix memory leak when fuzzing This only affects the fuzzing build mode.
Nick Wellnhofer b59ff587 2022-10-28T20:08:02 xinclude: Fix memory leak in xmlXIncludeLoadDoc Regressed in a recent commit.
Nick Wellnhofer 80e43d1b 2022-10-24T01:08:25 gitlab-ci: Reenable LeakSanitizer Let's hope it works on the asan runners.
Nick Wellnhofer bffc67d1 2022-10-24T20:24:17 threads: Remove check for pthread_equal GCC 12 fixed -Waddress warnings for inline functions, resulting in warnings when comparing pthread_equal with NULL. Simply remove the check and assume that pthread_equal is available if all the other functions are. This code is only enabled on Linux anyway.
Nick Wellnhofer 20e2fb4c 2022-10-23T17:52:29 xinclude: Avoid creation of subcontexts Don't create subcontext in xmlXIncludeRecurseDoc. Save and restore 'doc' and 'incTab' instead. Make xmlXIncludeLoadFallback call xmlXIncludeCopyNode which seems safer than xmlXIncludeDoProcess since the latter may modify the document. This should also be more performant since we need to copy the whole fallback subtree anyway. Also make sure to avoid replacements in fallback elements in xmlXIncludeDoProcess.
Nick Wellnhofer d767c6be 2022-10-23T23:26:31 gitlab-ci: Fix llvm-symbolizer Newer versions of llvm-symbolizer require libxml2 themselves. Running a test program with LD_LIBRARY_PATH set to .libs makes llvm-symbolizer pick up the tested development version of libxml2 which breaks completely if the build is instrumented with ASan. Add a wrapper script that invokes llvm-symbolizer with an empty LD_LIBRARY_PATH.
Nick Wellnhofer 66f781cf 2022-10-24T14:56:26 gitlab-ci: Upgrade image to Ubuntu 22.10, reenable MSan MSan and 64-bit stat was broken on Ubuntu 22.04 (glibc >= 2.33, LLVM <= 14), see https://github.com/llvm/llvm-project/commit/1f82d0f7
Nick Wellnhofer 128c0261 2022-10-25T19:23:07 warnings: Fix -Wstrict-prototypes warning
Nick Wellnhofer b6f1298a 2022-10-24T20:47:10 warnings: Remove set-but-unused variables Fixes compiler warnings with clang 15.
Nick Wellnhofer 010b682f 2022-10-23T16:02:48 xinclude: Rework XInclude cache Use a single cache stored in the "root" context, avoiding cache misses in some scenarios. Separate the cache from the "include" table. Rework recursion check.
Nick Wellnhofer 3b68aa47 2022-10-23T16:54:22 xinclude: Remove unused 'doc' argument from xmlXIncludeDoProcess
Nick Wellnhofer 2fc8d123 2022-10-22T19:08:43 xinclude: Make xmlXIncludeCopyNode non-recursive Avoid call stack overflows. Also switch to xmlStaticCopyNode which avoids duplicate namespace definitions.
Nick Wellnhofer bc32c386 2022-10-22T17:48:25 xinclude: Don't pass documents to xmlXIncludeCopyNode Extract the root element directly in xmlXIncludeCopyXPointer.
Nick Wellnhofer 46e4cfb6 2022-10-22T19:20:20 xinclude: Remove unused source and target arguments source is unused, target is always ctxt->doc.
Nick Wellnhofer d2ed1e4f 2022-10-22T16:50:18 xinclude: Limit recursion depth This avoids call stack overflows.
Nick Wellnhofer 0b09f132 2022-10-23T14:59:31 xinclude: Remove unused member 'url' from xmlXIncludeCtxt
Nick Wellnhofer 966f5ebd 2022-10-23T14:14:39 xinclude: Remove inefficient refcounting scheme xinclude.c used to implement a refcounting mechanism for documents which could result in documents being freed too early and reloaded. We really should keep parsed and processed documents around for as long as possible to avoid reprocessing.
Nick Wellnhofer fe0194d5 2022-10-23T13:57:33 xinlucde: Pass xmlXIncludeRefPtrs directly Stop passing indices into the include table.
Nick Wellnhofer 0fc5be0a 2022-10-23T13:55:29 xinclude: Remove dead code in xmlXIncludeLoadDoc The include table was already scanned for entries with a matching URI a couple of lines before.
Nick Wellnhofer 34496f26 2022-10-22T16:09:21 xinclude: Test for inclusion loops
Nick Wellnhofer bad30e2b 2022-10-21T17:27:23 xinclude: Copy included docs with xmlDocCopyNode All includes should already be expanded after calling xmlXIncludeRecurseDoc, so there's no need to invoke the more costly xmlXIncludeCopyNodeList. Now xmlXIncludeCopyNode is only used to copy XPointer fragments.
Nick Wellnhofer bc267cb9 2022-10-22T02:19:22 xinclude: Expand includes in xmlXIncludeCopyNode This should make nested includes work reliably. Fixes #424.
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 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 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 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 7f04e297 2022-10-18T18:40:00 xinclude: Fix regression with nested includes This reverts commits 74dcc10b and 87d20b55. Fixes #424.
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 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