xmllint.c


Log

Author Commit Date CI Message
Nick Wellnhofer 1fc66d26 2025-06-03T00:33:27 xmllint: Don't check for removed features
Nick Wellnhofer cbad60ff 2025-05-16T18:31:16 xmllint: Remove unused macros
Nick Wellnhofer 2132150d 2025-05-16T18:27:00 xmllint: Switch to xmlCtxtGetDocument
Nick Wellnhofer 9f496fdb 2025-05-03T14:29:27 xmllint: Return early on invalid args At this point, no memory was allocated and xmllintOom wasn't initialized. Return immediately on invalid args to avoid triggering false positive unreported OOM errors when fuzzing.
Nick Wellnhofer 69879da8 2025-04-28T14:04:30 doc: Remove email addresses from documentation Also remove authorship information from generated files, hash.c and globals.c which were rewritten.
Nick Wellnhofer 61890e39 2025-04-27T21:50:15 doc: Prepare for conversion to Doxygen Fix many params in internal functions (not really necessary but Doxygen warns about that in XML mode). Fix formatting in a few corner cases that automatic conversion can't handle. Rearrange some DOC_DISABLE blocks.
Nick Wellnhofer 177067ea 2025-04-25T15:34:07 reader: Fix reading compressed data Also make sure that functions that don't return error codes set the global error.
Nick Wellnhofer 2d8b6df2 2025-04-19T00:34:23 xmllint: Make --nocatalogs actually work
Nick Wellnhofer ffc0bba9 2025-04-18T23:55:27 xmllint: Remove --htmlout option Unlike the documentation suggests, this only printed error messages as HTML which doesn't seem useful.
Nick Wellnhofer dc4910c7 2025-04-18T22:58:46 xmllint: Remove --testIO option
Nick Wellnhofer 95ffa8d2 2025-04-18T22:54:40 xmllint: Remove --debugent option
Nick Wellnhofer 7d33f97f 2025-04-18T20:45:17 xmllint: Separate XML and HTML parser options
Nick Wellnhofer 7e1c2b94 2025-04-18T18:39:03 xmllint: Return error code instead of exiting in parseInteger
Nick Wellnhofer d8193b7a 2025-04-17T19:46:23 xmllint: Fix parsing of --pretty argument
Nick Wellnhofer 470bec65 2025-04-17T19:44:50 xmllint: Switch to xmlSaveSetIndentString Stop using global xmlTreeIndentString.
Nick Wellnhofer 2e2b4c0f 2025-04-17T19:41:20 xmllint: Use xmlSave API to serialize HTML
Nick Wellnhofer c132829c 2025-04-17T19:42:30 xmllint: Don't serialize to memory with --memory option This is only useful for debugging.
Nick Wellnhofer 8dbf298c 2025-04-17T19:10:48 xmllint: Fix harmless memory leaks Fixes #892.
Nick Wellnhofer 5964fb7c 2025-03-30T13:48:51 xmllint: Fix --html --sax element callbacks We need the non-namespace callbacks for HTML.
Nick Wellnhofer b3492259 2025-03-14T00:01:11 include: Change some return types from int to enum This also affects some new functions from 2.13.
Nick Wellnhofer fd1b9391 2025-03-13T23:20:16 include: Convert some macros to enums
Nick Wellnhofer d83ff954 2025-03-11T11:23:34 xmllint: Make sure that parser options are used
Nick Wellnhofer e50d314a 2025-02-25T23:07:19 build: Add separate configuration option for RELAX NG Support for RELAX NG used to be enabled together with XML Schema support (--with-schemas). Now there's a separate option and a new feature macro LIBXML_RELAXNG_ENABLED.
Nick Wellnhofer ce1b704e 2025-02-25T20:09:36 doc: Regenerate libxml2-api.xml
Nick Wellnhofer 25ae533b 2025-02-17T11:27:30 xmllint: Fix SIGBUS with --memory option If the input file size is a multiple of page size, the byte after the file's content is on a new page and accessing it will lead to SIGBUS. Remove XML_INPUT_BUF_ZERO_TERMINATED hint for mmapped files. Regressed with a221cd78. Fixes #864.
Nick Wellnhofer 53a48468 2025-01-30T15:15:30 xmllint: Make --push report parse errors The push parser leaves documents in ctxt->myDoc even if they're invalid. Also fix documentation. Regressed with f8ff4d86.
Nick Wellnhofer 1082d813 2025-01-28T23:21:34 parser: Prepare to make decompression opt-in Add a new parser option XML_PARSE_UNZIP that enables decompression. xmlReadFile, xmlCtxtReadFile and xmlCreateURLParserCtxt always set this option currently, but downstream users should start to set the option if they really need it.
Nick Wellnhofer a78843be 2025-01-28T20:13:58 xmllint: Support compressed input from stdin Another regression related to reading from stdin. Making a "-" filename read from stdin was deeply baked into the core IO code but is inherently insecure. I really want to reenable this dangerous feature as sparingly as possible. This now enables compressed input when using the "Fd" API functions which wan't supported before. But XML_PARSE_NO_UNZIP will be inverted later. Allow compressed stdin in xmlReadFile to support xmlstarlet and older versions of xsltproc. So far, these are the only known command-line tools that rely on "-" meaning stdin.
Nick Wellnhofer e95c4b07 2025-01-22T10:06:39 fuzz: Also test xmllint --repeat option
Nick Wellnhofer dc6270d1 2025-01-22T09:38:43 xmllint: Fix UAF with --push --repeat Short-lived regression. Fixes #841.
Nick Wellnhofer 1c82bca6 2025-01-17T22:54:51 xmllint: Improve error reports from reader
Nick Wellnhofer 16286dea 2025-01-17T23:03:20 xmllint: Fix memory leak in parseAndPrintFile
Nick Wellnhofer 9cfc723c 2025-01-17T21:42:35 xmllint: Always reuse parser context Also move push parsing into parseXml which makes "--sax --push" work.
Nick Wellnhofer 00167cae 2025-01-17T18:50:55 xmllint: Report OOM errors to stderr For the validators, some work still has to be done, but for core features, xmllint should now report OOM errors reliably.
Nick Wellnhofer 67b738d9 2025-01-17T17:59:21 fuzz: Check whether xmllint reports malloc failures correctly This relies on xmllint's "maxmem" option.
Nick Wellnhofer bfe6af2e 2025-01-17T17:09:04 fuzz: Remove hacks to build lint fuzzer Don't include source file directly.
Nick Wellnhofer bf1d8b9c 2025-01-17T18:13:35 xmllint: Report malloc failures from parsing patterns
Nick Wellnhofer 255fd5f3 2025-01-17T16:52:06 xmllint: Store error stream in global state
Nick Wellnhofer e42ded42 2025-01-17T16:00:35 xmllint: Stop using global variables The only exception is "maxmem". The custom malloc functions don't support an extra context.
Nick Wellnhofer d39e5714 2025-01-17T13:12:36 xmllint: Fix memory leak in parseFile Short-lived regression.
Nick Wellnhofer 0f4d36e0 2025-01-17T13:04:35 xmllint: Fix memory leak in error case
Nick Wellnhofer 86401cc3 2025-01-07T19:01:57 xmllint: Make --shell ignore some other options When the shell should be launched with the --shell option, don't post-validate, stream or dump the document. Ignore the --repeat option.
Nick Wellnhofer c0c69cb8 2025-01-07T18:55:35 xmllint: Always reuse parser context Simplifies "repeat" logic.
Nick Wellnhofer a5be2cc3 2025-01-04T22:52:19 xmllint: Support --xpath --debug Dump compiled expression if --debug was supplied.
Nick Wellnhofer f22707f4 2024-12-30T23:21:56 xmllint: Use xmlXPathOrderDocElems for XPath queries
Nick Wellnhofer 169857ad 2024-12-13T15:12:18 xmllint: Check return value of htmlNewParserCtxt
Nick Wellnhofer 1dc5e50a 2024-11-21T23:22:40 catalog: Only use XML_SYSCONFDIR if catalogs are enabled
Nick Wellnhofer a5764b56 2024-11-21T22:18:36 build: Define XML_SYSCONFDIR in config.h Rename SYSCONFDIR macro to XML_SYSCONFDIR. Use AX_RECURSIVE_EVAL with Autotools. This is GPL v2 with Autoconf exception which shouldn't be a problem. Finally support meson.
Nick Wellnhofer a4c16a14 2024-09-27T23:49:02 xmllint: Improve --memory and --testIO options Support --memory and --testIO in SAX mode. Keep memory-mapped file across repetitions. Options `--sax --memory --noout --repeat` can now be used to benchmark the core parser without building a DOM tree or repeatedly reading files from disk.
Nick Wellnhofer 3ac214f0 2024-09-27T22:54:14 xmllint: Support --html --sax
Nick Wellnhofer d67833a3 2024-09-26T19:21:24 xmllint: Use proper type to store seconds since epoch Should avoid year 2038 problem. Fixes #801.
Nick Wellnhofer 8ad618d2 2024-08-28T22:03:30 doc: Document all xmllint options Remove --pushsmall. Fixes #785.
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 8af55c8d 2024-07-06T22:14:21 parser: Rename new input API functions These weren't made public yet.
Nick Wellnhofer 37f72370 2024-07-01T15:31:58 xmllint: Fix unsigned integer overflow Short-lived regression.
Nick Wellnhofer 71eb7109 2024-06-26T04:29:11 xmllint: Switch to xmlCtxtSetErrorHandler
Nick Wellnhofer 5589c9ea 2024-06-22T21:01:38 xmllint: Set stdin/stdout to binary on Windows
Nick Wellnhofer 84a4f84c 2024-06-22T02:11:24 build: Don't check for required headers and functions Unless we are on Windows, the following POSIX headers are required. They're part of the earliest POSIX specs and it doesn't make sense to check for them. - fcntl.h - unistd.h - sys/stat.h - sys/time.h On Windows, io.h, fcntl.h and sys/stat.h are always available.
Nick Wellnhofer f23fc4fa 2024-06-22T02:10:54 xmllint: Simplify time handling Assume that gettimeofday is always available.
Rosen Penev 2def7b4b 2024-06-18T13:55:34 clang-tidy: move assignments out of if Found with bugprone-assignment-in-if-condition Signed-off-by: Rosen Penev <rosenp@gmail.com>
Nick Wellnhofer 1341deac 2024-06-16T17:57:12 xmllint: Move shell to xmllint Move source code for xmllint shell to shell.c and move it from the libxml2 library to the xmllint executable. Also allow shell to run without XPath and debug modules. Add stubs for old shell API functions in legacy build mode.
Nick Wellnhofer c9b06591 2024-06-16T17:36:05 xmllint: Fix resetting error in xmlHTMLPrintError Make sure that we don't change the error handler when fuzzing.
Nick Wellnhofer b0fc67aa 2024-06-15T22:53:55 build: Remove --with-tree configuration option This option would allow for a smaller, but mostly useless minimal build. But it complicates the symbol availability logic in an insane way and requires specialized tools like our custom C parser in doc/apibuild.py. See #717.
Nick Wellnhofer 0c97eaa7 2024-06-10T23:05:40 xmllint: Rewrite HTML error output
Nick Wellnhofer dba1ed85 2024-06-12T18:19:55 ftp: Remove FTP support Remove the built-in FTP client. If you configure --with-legacy, old symbols are retained for ABI compatibility.
Nick Wellnhofer 52384043 2024-06-11T19:10:41 parser: Pass resource type to resource loader
Nick Wellnhofer f96dca9c 2024-06-11T18:14:43 xmllint: Switch to resource loader
Nick Wellnhofer e2919516 2024-06-06T19:28:23 xmllint: Fix build --with-valid --without-html
Nick Wellnhofer caa8bb38 2024-05-19T19:31:54 fuzz: Move back to xmlSetExternalEntityLoader xmlParserInputBufferCreateFilenameDefault can't report malloc failures.
Nick Wellnhofer b3cb41be 2024-05-13T12:18:08 fuzz: Add xmllint fuzzer
Nick Wellnhofer 3dea98ef 2024-05-09T21:10:28 xmllint: Don't free DTD with --dropdtd Entity references point to entities in the DTD, so only unlink the DTD and don't destroy it.
Nick Wellnhofer 3ad7f816 2024-05-08T11:49:31 [CVE-2024-34459] Fix buffer overread with `xmllint --htmlout` Add a missing bounds check. Fixes #720.
Nick Wellnhofer c83147bf 2024-05-08T03:04:15 xmllint: Fix --pedantic option Regressed in 74c84a8c.
Nick Wellnhofer 3665d667 2024-05-07T16:53:43 xmllint: Clean up option handling Remove unnecessary globals and make some local. Remove unnecessary calls to xmlTextReaderSetParserProp. Remove unused "oldout" code. Fix skipArgs.
Nick Wellnhofer f8ff4d86 2024-05-07T15:23:03 xmllint: Rework parsing Merge a few code paths, making options like --valid or --htmlout work with some other options. Improve error handling.
Nick Wellnhofer 3afaff7e 2024-05-06T11:16:01 xmllint: Check for NULL input in xmlHTMLValidityError `ctxt->input` can be NULL after commit 61b4c42f.
Nick Wellnhofer ef6e6012 2024-05-06T01:13:49 xmllint: Fix parsing of maxmem option Fix corner cases like 'xmllint --encode --maxmem 123'. Also fixes --path without LIBXML_VALID_ENABLED.
Nick Wellnhofer 907a5a48 2024-05-06T02:34:01 xmllint: Fix memory leak in walkDoc
Nick Wellnhofer f4826c84 2024-05-06T00:33:19 xmllint: Add macro for error stream Prepare for fuzzing.
Nick Wellnhofer 826baf00 2024-05-06T00:29:07 xmllint: Fix --insert option Make sure that parent is an element when calling xmlValidGetValidElements.
Nick Wellnhofer 20a0de95 2024-05-06T00:08:54 xmllint: Fix --pushsmall option This is only a debugging aid but also useful when fuzzing.
Nick Wellnhofer a39e862b 2024-05-05T18:16:11 xmllint: Add explicit cast for -fsanitize=integer
Nick Wellnhofer 422ae462 2024-05-05T15:20:15 xmllint: Make some strings const
Nick Wellnhofer 1cdfece1 2024-04-28T18:33:40 memory: Remove memory debugging This is useless compared to sanitizers or valgrind and has a considerable performance impact if enabled accidentally.
Nick Wellnhofer 5e80f438 2024-04-28T17:33:19 tree: Deprecate xmlRegisterNodeDefault This rarely used feature should be phased out.
Nick Wellnhofer 88169bfd 2024-04-28T17:54:36 tree: Deprecate xmlSetCompressMode
Nick Wellnhofer 87bebd25 2024-02-12T16:45:16 xmllint: Return error code if XPath returns empty nodeset Return an error code as before but make it possible to distinguish from real errors. Fixes #690.
Nick Wellnhofer d7d300ba 2024-01-04T17:50:11 parser: Remove remnants of runtime debugging feature Apparently, this feature was remove long ago. Fixes #651.
Nick Wellnhofer 7e0bbbc1 2023-12-27T18:33:30 parser: New input API Provide a new set of functions to create xmlParserInputs. These can be used for the document entity or from external entity loaders. - Don't require xmlParserInputBuffer. - All functions take a base URI. - All functions take an encoding as string. - xmlNewInputURL also takes a public ID. - xmlNewInputMemory takes a size_t. - Optimization hints for memory buffers. Improve documentation. Only call xmlInitParser before allocating a new parser context. Call xmlCtxtUseOptions as early as possible.
Nick Wellnhofer 0a658c0f 2023-12-20T23:53:19 io: Don't use "-" to read from stdin To implement this feature on such a low level is a disaster waiting to happen. Remove these checks from the IO code and move them to xmllint. Note that the serialization API will still treat "-" as stdout.
Nick Wellnhofer f9f5c2d8 2023-12-18T21:44:06 xmllint: Don't use xmlGenericError
Nick Wellnhofer d6812f3a 2023-12-14T13:35:13 Fix compiler warnings with disabled modules
Nick Wellnhofer 699299ca 2023-09-20T18:54:39 globals: Stop including globals.h
Nick Wellnhofer 11a1839d 2023-09-20T17:54:48 globals: Move remaining globals back to correct header files This undoes a lot of damage.
Nick Wellnhofer 692a5c40 2023-09-20T13:51:26 xmllint: Don't set deprecated globals
Nick Wellnhofer bfd7d286 2023-08-29T21:16:34 xmllint: Fix more error messages
Nick Wellnhofer 373244bc 2023-08-29T21:05:32 xmllint: Fix error message when push parsing empty documents
Nick Wellnhofer ed3bd052 2023-08-20T20:48:10 parser: Allow to set maximum amplification factor
Nick Wellnhofer 305a75cc 2023-06-06T13:15:46 malloc-fail: Fix null-deref with xmllint --copy See #344. Fixes #552.
Nick Wellnhofer 886bf4e6 2023-04-30T15:35:47 Stop calling xmlMemoryDump This was used to check for memory leaks but could potentially create a .memdump file. These days, there are better ways to check for memory leaks.