Log

Author Commit Date CI Message
Nick Wellnhofer 02fcb1ef 2024-07-25T17:07:18 parser: Make xmlParseChunk return an error if parser was stopped This regressed after enhancing the disableSAX member in 2.13. Should fix #777.
Nick Wellnhofer bc14d70f 2024-07-25T00:26:48 xmlsave: Improve "unsupported encoding" error message Incomplete support of XML_SAVE_* error codes was removed. Error handling still needs work. xmlOutputBufferCreateFilename should return an error code.
Nick Wellnhofer 1a893230 2024-07-06T01:03:46 [CVE-2024-40896] Fix XXE protection in downstream code Some users set an entity's children manually in the getEntity SAX callback to restrict entity expansion. This stopped working after renaming the "checked" member of xmlEntity, making at least one downstream project and its dependants susceptible to XXE attacks. See #761.
Nick Wellnhofer 6cc2387e 2024-07-24T11:42:39 shell: Only use readline on terminals Should fix xmllint shell tests.
Nick Wellnhofer d04e152d 2024-07-24T11:40:01 shell: Remove access(2) checks The checks didn't handle stdout. Since unistd.h wasn't included, W_OK wasn't defined and the checks wouldn't run anyway.
Nick Wellnhofer aa6ca0b1 2024-07-23T03:29:41 module: Deprecate module API This was only used by libxslt which switched to a private implementation.
Nick Wellnhofer ec4340b8 2024-07-23T01:32:43 Update NEWS
Nick Wellnhofer e1291059 2024-07-22T22:22:48 build: Don't check for pthread.h The Autotools build still checks for pthread.h (and zlib.h and lzma.h) but the result isn't needed in config.h.
Nick Wellnhofer cc03c069 2024-07-22T22:15:09 build: Don't check for standard POSIX headers These headers should be available since early POSIX days and are required no matter what.
Nick Wellnhofer d7dc2eaf 2024-07-22T21:39:54 build: Don't check for dlfcn.h and dl.h It's enough to check for symbols.
Nick Wellnhofer 7c10393f 2024-07-22T17:25:15 build: Fix config.h macros We have to emulate AC_CHECK_DECLS. Instead of leaving the macro undefined if a symbol wasn't found, it has to be set to 0.
Nick Wellnhofer 095b3c7f 2024-07-22T15:37:13 cmake: Implement READLINE and HISTORY options
Nick Wellnhofer 0172ffa9 2024-07-22T15:21:36 build: Only check for required headers
Nick Wellnhofer 3ef66611 2024-07-22T14:58:16 build: Rework mmap checks Switch to AC_CHECK_DECLS/check_symbol_exists. Don't check for sys/mman.h separately. Don't check for munmap.
Nick Wellnhofer e1657f3f 2024-07-22T14:33:14 build: Use AC_CHECK_DECLS/check_symbol_exists for getentropy This assumes that getentropy is declared in sys/random.h. Should fix issues on iOS. See #774.
Nick Wellnhofer 278fcf13 2024-07-22T13:02:07 buf: Limit xmlBuffer size to INT_MAX Some API functions like xmlBufUse only support ints.
Nick Wellnhofer 6a3c0b0d 2024-07-22T12:53:00 parser: Increase XML_MAX_DICTIONARY_LIMIT This limit is somewhat arbitrary and can be reached when fuzzing documents up to 1 MB. Increase limit to 100 MB and disable limit if XML_PARSE_HUGE is set.
Nick Wellnhofer d2755cdb 2024-07-22T12:35:29 buf: Fix memory leak if malloc fails before xmlBufBackToBuffer Short-lived regression.
Nick Wellnhofer 322e733b 2024-07-18T19:27:43 xinclude: Fix fallback for text includes Fixes #772.
Nick Wellnhofer 0dada804 2024-07-18T03:48:11 threads: Fix 32-bit Windows build Should fix #771.
Nick Wellnhofer 7b98e8d6 2024-07-18T01:54:22 io: Don't call getcwd in xmlParserGetDirectory The "directory" value isn't used internally. Calling getcwd is unnecessary and can cause problems in sandboxed environments. Fixes #770.
Nick Wellnhofer 15202100 2024-07-18T02:36:30 buf: Fix maxSize behavior Short-lived regression.
Nick Wellnhofer 2440cb5d 2024-07-18T02:10:32 buf: Fix xmlBufBackToBuffer Short-lived regression.
Nick Wellnhofer 5862e9dd 2024-07-18T01:59:25 Add NULL checks Short-lived regression.
Nick Wellnhofer 4e93425a 2024-07-16T20:02:13 threads: Prefer Win32 over pthreads
Nick Wellnhofer 1f7d4af3 2024-07-16T18:59:19 globals: Clean up macros and add comments
Nick Wellnhofer 4f08a1a2 2024-07-15T23:23:06 globals: Also use thread-specific storage on "main" thread Don't treat "main" thread specially. This simplifies access to thread-specific data. xmlGetGlobalState can now also fail on the former main thread, leading to an unrecoverable condition if malloc fails. The globals were never defined in public header files when compiling with thread support. Now they're only defined in a legacy build. Move TlsFree to DllMain to make cleanup more robust on Windows. Obsoletes #1.
Nick Wellnhofer 5f3f66c6 2024-07-15T23:50:08 threads: Use pthread_once and InitOnceExecuteOnce Static initialization flags aren't thread-safe. Also avoids an allocation on Windows. TODO: Breaks xmllint on Windows.
Nick Wellnhofer be250b79 2024-07-15T20:04:08 xpath: Remove union swap optimization This would require locking to make it thread-safe.
Nick Wellnhofer 79e11995 2024-07-15T19:43:28 error: Make xmlLastError const
Nick Wellnhofer eb66d03e 2024-07-07T23:15:54 io: Deprecate a few functions
Nick Wellnhofer 97680d6c 2024-07-07T21:29:18 io: Rework xmlParserInputBufferGrow Remove dubious (len != 4) check. Remove compression-related code. This should already be set when opening the input.
Nick Wellnhofer a6f54f05 2024-07-07T18:52:17 io: Fine-tune initial IO buffer size
Nick Wellnhofer 7148b778 2024-07-07T16:11:08 parser: Optimize memory buffer I/O Reenable zero-copy IO for zero-terminated static memory buffers. Don't stream zero-terminated dynamic memory buffers on top of creating a copy.
Nick Wellnhofer 34c9108f 2024-07-07T18:38:31 encoding: Add sizeOut argument to xmlCharEncInput When push parsing, we want to convert as much of the input as possible. When pull parsing memory buffers, we want to convert data chunk by chunk to save memory.
Nick Wellnhofer 8e871a31 2024-07-07T12:58:43 buf: Rework xmlBuffer code Port most changes made to the xmlBuf code in f3807d76, except that "size" still includes the terminating NULL byte. Make xmlSetBufferAllocationScheme, xmlBufferAllocScheme and xmlDefaultBufferSize no-ops. Deprecate a few functions.
Nick Wellnhofer 888f70c7 2024-07-07T11:35:54 buf: Move xmlBuffer code to buf.c
Nick Wellnhofer 92f30711 2024-07-07T03:02:11 parser: Optimize buffer shrinking Remove checks now that we can shrink memory buffers efficiently. Shrink more aggressively.
Nick Wellnhofer a221cd78 2024-07-07T03:01:51 buf: Rework xmlBuf code Always use what the old implementation called the "IO" allocation scheme, allowing to move the content pointer past the initial allocation. This is inexpensive and allows efficient shrinking. Optimize xmlBufGrow, reusing shrunken memory as much as possible. Simplify xmlBufAdd. Make xmlBufBackToBuffer return an error on overflow. Make "size" exclude the terminating NULL byte. Always provide an initial size. Reintroduce static buffers. Remove xmlBufResize and several other functions.
Nick Wellnhofer 2adcde39 2024-07-12T16:25:05 save: Optimize xmlSerializeText Use lookup tables.
Nick Wellnhofer 1b067082 2024-07-12T15:19:26 save: Always serialize CR as decimal "
" We used to serialize CR as "
" when there was no encoding and we weren't in an attribute. This was somewhat inconsistent.
Nick Wellnhofer 1cfc5b80 2024-07-12T03:07:57 entities: Rework serialization of numeric character references
Nick Wellnhofer 8d160626 2024-07-12T02:01:06 entities: Rework text escaping
Nick Wellnhofer cc45f618 2024-07-11T22:06:31 save: Rework text escaping Stop using xmlOutputBufferWriteEscape except when using deprecated xmlSaveSetEscape. Rewrite xmlOutputBufferWriteEscape to use an extra buffer and call xmlOutputBufferWrite. Introduce xmlSerializeText to serialize both text and attribute content. Don't read encoding from document when serializing and remove all hacks that temporarily changed the document's encoding.
Nick Wellnhofer e488695b 2024-07-11T20:23:49 save: Deprecate xmlSaveSet*Escape xmlSaveSetAttrEscape never had an effect.
Nick Wellnhofer 0ab07b21 2024-07-11T20:04:39 io: Rework xmlOutputBufferWrite Simplify code, handle short writes from callback.
Nick Wellnhofer 769e5a4a 2024-07-16T01:12:21 threads: Allocate global RMutexes statically Avoid memory allocations during initialization.
Nick Wellnhofer 5d36664f 2024-07-16T00:35:53 memory: Deprecate xmlGcMemSetup
Nick Wellnhofer ff39f28b 2024-07-16T00:21:22 schematron: Use xmlMalloc
Nick Wellnhofer a87944e9 2024-07-16T00:13:49 windows: Use DllMain for cleanup
Markus Rickert bb1884cb 2024-07-16T10:19:23 Enable CMake checks for MSVC
Nick Wellnhofer e0494c0d 2024-07-15T15:10:18 io: Add some deprecation warnings
Nick Wellnhofer 2dcd561d 2024-07-15T14:54:37 regexp: Don't print to stderr
Nick Wellnhofer 4b1832c1 2024-07-15T14:46:00 relaxng: Use error handler for internal errors Don't print to stderr.
Nick Wellnhofer 72886980 2024-07-15T14:35:47 error: Add helper functions to print errors and abort
Nick Wellnhofer f6170b48 2024-07-15T14:19:34 memory: Don't report OOM to stderr
Nick Wellnhofer 6be79014 2024-07-15T14:18:26 Remove unused code
Nick Wellnhofer fee0006a 2024-07-15T13:03:55 parser: Fix memory leak after malloc failure in xml*ParseDTD
Nick Wellnhofer 69f12d6d 2024-07-13T00:17:18 encoding: Deprecate xmlByteConsumed This was only used by Chromium/WebKit to detect whether xmlParseContent really succeeded. It's a horrible, overcomplicated hack. See 8c5848bd and #767.
Nick Wellnhofer 440d11af 2024-07-13T00:11:35 reader: Deprecate xmlTextReaderByteConsumed Document that this function is useless. Stop trying to handle encoding via xmlByteConsumed which can be expensive.
Nick Wellnhofer 3528b81f 2024-07-12T16:28:18 tools: Move codegen tools to 'tools' directory
Nick Wellnhofer c3b2f471 2024-07-12T03:07:22 cmake: Update option description
Nick Wellnhofer 30487932 2024-07-12T02:03:04 meson: Also disable icu and thread_alloc by default
Nick Wellnhofer aa6aec19 2024-07-11T12:37:25 parser: Fix xmlInputSetEncodingHandler again Short-lived regression.
Nick Wellnhofer 8af55c8d 2024-07-06T22:14:21 parser: Rename new input API functions These weren't made public yet.
Nick Wellnhofer d74ca594 2024-07-06T22:04:06 parser: Rename internal xmlNewInput functions
Nick Wellnhofer 4f329dc5 2024-07-10T03:27:47 parser: Implement xmlCtxtParseContent This implements xmlCtxtParseContent, a better alternative to xmlParseInNodeContext or xmlParseBalancedChunkMemory. It accepts a parser context and a parser input, making it a lot more versatile. xmlParseInNodeContext is now implemented in terms of xmlCtxtParseContent. This makes sure that xmlParseInNodeContext never modifies the target document, improving thread safety. xmlParseInNodeContext is also more lenient now with regard to undeclared entities. Fixes #727.
Nick Wellnhofer 673ca0ed 2024-07-11T01:23:57 tests: Regenerate testapi.c
Nick Wellnhofer 4fec0889 2024-07-10T22:31:15 parser: Fix memory leak in xmlInputSetEncodingHandler Short-lived regression.
Nick Wellnhofer d0997956 2024-07-10T22:26:19 encoding: Readd some UTF-8 validation to encoders This isn't strictly needed but avoids generating invalid UTF-16 and unsigned integer overflows.
Nick Wellnhofer ae6e2ee7 2024-07-10T22:11:08 fuzz: Adjust reader fuzzer
Nick Wellnhofer f48eefe3 2024-07-09T14:09:15 encoding: Rework xmlByteConsumed Don't loop infinitely if input buffer is too large. Allocate conversion buffer on the heap.
Nick Wellnhofer 8c4cc0be 2024-07-09T13:56:49 fuzz: Improve debug output of reader fuzzer
Nick Wellnhofer 59354717 2024-07-09T13:54:07 parser: Fix malloc failure handling in xmlInputSetEncodingHandler Don't set encoder if allocating buffer failed. This could lead to xmlByteConsumed processing invalid UTF-8.
Nick Wellnhofer da686399 2024-07-09T12:29:53 io: Fix return value of xmlFileRead This broke in commit 6d27c54. Fixes #766.
Nick Wellnhofer f51ad063 2024-07-08T11:23:39 parser: Fix error return of xmlParseBalancedChunkMemory Only return an error code if the chunk is not well-formed to match the 2.12 behavior. Return 0 on non-fatal errors like invalid namespaces. Fixes #765.
Nick Wellnhofer 2e63656e 2024-07-07T19:21:46 parser: Check return value of inputPush inputPush typically doesn't fail because we pre-allocate the input table. The return value should be checked nevertheless.
Nick Wellnhofer ea31ac5b 2024-07-07T01:02:11 fuzz: Fix spaceMax
Nick Wellnhofer 82e0455c 2024-07-06T19:48:07 Undeprecate some symbols for now - xmlKeepBlanksDefault is needed as a work-around for xmlParseBalancedChunk, see issue #727. - ctxt->options already has an accessor and will be deprecated later. - input->cur, input->base, input->end: See #762.
Nick Wellnhofer 29e3ab92 2024-07-06T15:48:43 fuzz: Make reallocs more likely
Nick Wellnhofer de3221b1 2024-07-06T15:23:30 fuzz: Adjust for xmlNodeParseContent changes xmlStringGetNodeList returns NULL again for empty strings.
Nick Wellnhofer 1e5375c1 2024-07-06T15:15:57 SAX2: Check return value of xmlPushInput Fix null deref in case of malloc failure.
Nick Wellnhofer 38195cf5 2024-07-06T14:58:16 parser: Don't produce names with invalid UTF-8 in recovery mode
Nick Wellnhofer c45c15f5 2024-07-04T15:15:58 ci: Add job for perl-XML-LibXML
Nick Wellnhofer ec088109 2024-07-04T15:15:17 parser: Upgrade XML_IO_NETWORK_ATTEMPT to error Fixes XML::LibXML test suite.
Nick Wellnhofer f86d17c1 2024-07-04T15:14:54 encoding: Fix xmlParseCharEncoding Make "UTF-16" return the UTF16LE handler as before. Fix error return.
Nick Wellnhofer 10082a3d 2024-07-04T03:35:17 testchar: Don't invoke encoding handler directly
Mike Dalessio 446a3610 2024-07-03T13:56:41 test: add a downstream integration test job for nokogiri Related to #758
Andrew Potter 67fa4a43 2024-07-03T13:40:04 meson: Disable python when python is disabled
Nick Wellnhofer e2a49afe 2024-07-03T20:18:24 build: Read version number from VERSION file
Nick Wellnhofer c3731347 2024-07-03T18:20:17 build: Introduce LIBXML_MINOR_COMPAT This is set to 0 for now but could be used to avoid ABI stability issues.
Nick Wellnhofer 606310a3 2024-07-03T18:05:05 meson: Set soversion
Nick Wellnhofer 944cc23c 2024-07-03T15:54:32 tree: Fix handling of empty strings in xmlNodeParseContent We shouldn't create an empty text node to match the old behavior. Fixes #759.
Nick Wellnhofer 46ec621e 2024-07-03T15:48:01 encoding: Clarify xmlUconvConvert
Nick Wellnhofer 48fec242 2024-07-03T15:11:20 encoding: Remove duplicate code Fix recent commit.
Nick Wellnhofer 71fb2579 2024-07-03T14:35:49 encoding: Fix ICU build
Nick Wellnhofer 80aabea1 2024-07-03T11:55:38 SAX2: Reenable 'directory' as base URI fallback Apparently, some users overwrite this member manually to set a base URI for memory streams. Fixes #753.
Nick Wellnhofer 842a0448 2024-07-03T11:46:06 valid: Restore ID lookup Revert a change from d025cfbb and don't overwrite ID table entries, so that the first attribute will be returned if there are duplicate IDs. This requires two other changes: - Attributes in entity content are never added to the ID table. This seems reasonable. - Remove the optimization to skip ID lookup when copying and the target document has an empty ID table. This also seems more correct since the document could have ID declarations nevertheless or we could be copying xml:ids into the document for the first time. Fixes #757.
Nick Wellnhofer f9065261 2024-07-02T23:43:28 SAX2: Fix HTML IDs Short-lived regression. Fixes #755.
Nick Wellnhofer 785ed5c4 2024-07-02T23:03:46 meson: Don't auto-enable legacy and tls These features should be requested explicitly.