|
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.
|
|
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.
|
|
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.
|
|
e95c4b07
|
2025-01-22T10:06:39
|
|
fuzz: Also test xmllint --repeat option
|
|
dc6270d1
|
2025-01-22T09:38:43
|
|
xmllint: Fix UAF with --push --repeat
Short-lived regression. Fixes #841.
|
|
1c82bca6
|
2025-01-17T22:54:51
|
|
xmllint: Improve error reports from reader
|
|
16286dea
|
2025-01-17T23:03:20
|
|
xmllint: Fix memory leak in parseAndPrintFile
|
|
9cfc723c
|
2025-01-17T21:42:35
|
|
xmllint: Always reuse parser context
Also move push parsing into parseXml which makes "--sax --push" work.
|
|
255fd5f3
|
2025-01-17T16:52:06
|
|
xmllint: Store error stream in global state
|
|
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.
|
|
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.
|
|
67b738d9
|
2025-01-17T17:59:21
|
|
fuzz: Check whether xmllint reports malloc failures correctly
This relies on xmllint's "maxmem" option.
|
|
bfe6af2e
|
2025-01-17T17:09:04
|
|
fuzz: Remove hacks to build lint fuzzer
Don't include source file directly.
|
|
bf1d8b9c
|
2025-01-17T18:13:35
|
|
xmllint: Report malloc failures from parsing patterns
|
|
d39e5714
|
2025-01-17T13:12:36
|
|
xmllint: Fix memory leak in parseFile
Short-lived regression.
|
|
0f4d36e0
|
2025-01-17T13:04:35
|
|
xmllint: Fix memory leak in error case
|
|
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.
|
|
c0c69cb8
|
2025-01-07T18:55:35
|
|
xmllint: Always reuse parser context
Simplifies "repeat" logic.
|
|
a5be2cc3
|
2025-01-04T22:52:19
|
|
xmllint: Support --xpath --debug
Dump compiled expression if --debug was supplied.
|
|
f22707f4
|
2024-12-30T23:21:56
|
|
xmllint: Use xmlXPathOrderDocElems for XPath queries
|
|
169857ad
|
2024-12-13T15:12:18
|
|
xmllint: Check return value of htmlNewParserCtxt
|
|
1dc5e50a
|
2024-11-21T23:22:40
|
|
catalog: Only use XML_SYSCONFDIR if catalogs are enabled
|
|
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.
|
|
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.
|
|
3ac214f0
|
2024-09-27T22:54:14
|
|
xmllint: Support --html --sax
|
|
d67833a3
|
2024-09-26T19:21:24
|
|
xmllint: Use proper type to store seconds since epoch
Should avoid year 2038 problem.
Fixes #801.
|
|
8ad618d2
|
2024-08-28T22:03:30
|
|
doc: Document all xmllint options
Remove --pushsmall.
Fixes #785.
|
|
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.
|
|
8af55c8d
|
2024-07-06T22:14:21
|
|
parser: Rename new input API functions
These weren't made public yet.
|
|
37f72370
|
2024-07-01T15:31:58
|
|
xmllint: Fix unsigned integer overflow
Short-lived regression.
|
|
71eb7109
|
2024-06-26T04:29:11
|
|
xmllint: Switch to xmlCtxtSetErrorHandler
|
|
5589c9ea
|
2024-06-22T21:01:38
|
|
xmllint: Set stdin/stdout to binary on Windows
|
|
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.
|
|
f23fc4fa
|
2024-06-22T02:10:54
|
|
xmllint: Simplify time handling
Assume that gettimeofday is always available.
|
|
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>
|
|
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.
|
|
c9b06591
|
2024-06-16T17:36:05
|
|
xmllint: Fix resetting error in xmlHTMLPrintError
Make sure that we don't change the error handler when fuzzing.
|
|
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.
|
|
0c97eaa7
|
2024-06-10T23:05:40
|
|
xmllint: Rewrite HTML error output
|
|
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.
|
|
52384043
|
2024-06-11T19:10:41
|
|
parser: Pass resource type to resource loader
|
|
f96dca9c
|
2024-06-11T18:14:43
|
|
xmllint: Switch to resource loader
|
|
e2919516
|
2024-06-06T19:28:23
|
|
xmllint: Fix build --with-valid --without-html
|
|
caa8bb38
|
2024-05-19T19:31:54
|
|
fuzz: Move back to xmlSetExternalEntityLoader
xmlParserInputBufferCreateFilenameDefault can't report malloc failures.
|
|
b3cb41be
|
2024-05-13T12:18:08
|
|
fuzz: Add xmllint fuzzer
|
|
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.
|
|
3ad7f816
|
2024-05-08T11:49:31
|
|
[CVE-2024-34459] Fix buffer overread with `xmllint --htmlout`
Add a missing bounds check.
Fixes #720.
|
|
c83147bf
|
2024-05-08T03:04:15
|
|
xmllint: Fix --pedantic option
Regressed in 74c84a8c.
|
|
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.
|
|
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.
|
|
3afaff7e
|
2024-05-06T11:16:01
|
|
xmllint: Check for NULL input in xmlHTMLValidityError
`ctxt->input` can be NULL after commit 61b4c42f.
|
|
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.
|
|
907a5a48
|
2024-05-06T02:34:01
|
|
xmllint: Fix memory leak in walkDoc
|
|
f4826c84
|
2024-05-06T00:33:19
|
|
xmllint: Add macro for error stream
Prepare for fuzzing.
|
|
826baf00
|
2024-05-06T00:29:07
|
|
xmllint: Fix --insert option
Make sure that parent is an element when calling
xmlValidGetValidElements.
|
|
20a0de95
|
2024-05-06T00:08:54
|
|
xmllint: Fix --pushsmall option
This is only a debugging aid but also useful when fuzzing.
|
|
a39e862b
|
2024-05-05T18:16:11
|
|
xmllint: Add explicit cast for -fsanitize=integer
|
|
422ae462
|
2024-05-05T15:20:15
|
|
xmllint: Make some strings const
|
|
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.
|
|
5e80f438
|
2024-04-28T17:33:19
|
|
tree: Deprecate xmlRegisterNodeDefault
This rarely used feature should be phased out.
|
|
88169bfd
|
2024-04-28T17:54:36
|
|
tree: Deprecate xmlSetCompressMode
|
|
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.
|
|
d7d300ba
|
2024-01-04T17:50:11
|
|
parser: Remove remnants of runtime debugging feature
Apparently, this feature was remove long ago.
Fixes #651.
|
|
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.
|
|
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.
|
|
f9f5c2d8
|
2023-12-18T21:44:06
|
|
xmllint: Don't use xmlGenericError
|
|
d6812f3a
|
2023-12-14T13:35:13
|
|
Fix compiler warnings with disabled modules
|
|
699299ca
|
2023-09-20T18:54:39
|
|
globals: Stop including globals.h
|
|
11a1839d
|
2023-09-20T17:54:48
|
|
globals: Move remaining globals back to correct header files
This undoes a lot of damage.
|
|
692a5c40
|
2023-09-20T13:51:26
|
|
xmllint: Don't set deprecated globals
|
|
bfd7d286
|
2023-08-29T21:16:34
|
|
xmllint: Fix more error messages
|
|
373244bc
|
2023-08-29T21:05:32
|
|
xmllint: Fix error message when push parsing empty documents
|
|
ed3bd052
|
2023-08-20T20:48:10
|
|
parser: Allow to set maximum amplification factor
|
|
305a75cc
|
2023-06-06T13:15:46
|
|
malloc-fail: Fix null-deref with xmllint --copy
See #344. Fixes #552.
|
|
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.
|
|
db32b09d
|
2023-04-20T16:22:11
|
|
xmllint: Validate --maxmem integer option
Fixes #520.
|
|
64b76f81
|
2023-03-14T13:17:20
|
|
xmllint: Fix memory leak with --pattern --stream
Fixes #499.
|
|
d7daf9fd
|
2023-03-14T13:02:36
|
|
xmllint: Fix use-after-free with --maxmem
Fixes #498.
|
|
60d457be
|
2022-12-08T03:45:37
|
|
libxml.h: Don't include stdio.h
|
|
dd3569ea
|
2022-12-08T02:43:17
|
|
Remove XMLDECL macro from .c files
|
|
4b959ee1
|
2022-12-01T13:23:09
|
|
Remove hacky heuristic from b2dc5675e94aa6b5557ba63f7d66b0f08dd17e4d
Checking whether the context is close to the parent context by hardcoding
250 is not portable (I noticed tests were failing on Morello since the value
is 288 there due to pointers being 128 bits). Instead we should ensure
that the XML_VCTXT_USE_PCTXT flag is not set in cases where the user data
is not actually a parser context (or ideally add a separate field but that
would be an ABI break.
From what I can see in the source, the XML_VCTXT_USE_PCTXT is only set if
the userData field points to a valid context, and if this is not the case
the flag should be cleared when changing userData rather than relying on
the offset between the two. Looking at the history, I think
d7cb33cf44aa688f24215c9cd398c1a26f0d25ff fixed most of the need for this
workaround, but it looks like there are a few more locations that need
updating; This commit changes two more places to set/clear/copy the
XML_VCTXT_USE_PCTXT flag, so this heuristic should not be needed anymore.
I've also drop two = NULL assignment in xmllint since this is not needed
after a call to memset().
There was also an uninitialized vctxt.flags (and other fields) in
`xmlShellValidate()`, which I've fixed by adding a memset() call.
|
|
701beb4e
|
2022-11-22T15:37:49
|
|
xmllint: Include <io.h> on Windows
|
|
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.
|
|
5bffa33a
|
2022-09-02T05:03:03
|
|
Stop including sys/types.h
|
|
74c84a8c
|
2022-08-24T15:51:28
|
|
xmllint: Don't set deprecated globals
Setting parser options should be enough.
|
|
ce93ee90
|
2022-08-24T05:24:13
|
|
xmllint: Stop calling xmlSAXDefaultVersion
This should already be handled by setting XML_PARSE_SAX1.
|
|
9a82b94a
|
2022-08-24T04:21:58
|
|
Introduce xmlNewSAXParserCtxt and htmlNewSAXParserCtxt
Add API functions to create a parser context with a custom SAX handler
without having to mess with ctxt->sax manually.
|
|
865520f0
|
2022-03-30T00:32:35
|
|
Respect `--sysconfdir` in source files
* Prefix installations need to point to a non-root `etc`
- Gentoo Prefix has been patching this for over 10 years:
https://bugs.gentoo.org/317891
- MacPorts has to manually replace paths after patching:
https://github.com/macports/macports-ports/blob/cc3bb736e906abe73b014da02a89ae2b70ef6295/textproc/libxml2/Portfile#L46
|
|
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
|
|
551b558d
|
2022-03-01T17:15:12
|
|
Remove useless call to xmlRelaxNGCleanupTypes
xmlRelaxNGCleanupTypes is called from xmlCleanupParser later.
|
|
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.
|
|
3f8655db
|
2022-02-28T23:22:50
|
|
Remove __DJGPP__ checks
Drop broken support for DJGPP.
|
|
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.
|
|
c41bc10d
|
2022-02-22T19:57:12
|
|
Fix unused variable warnings with disabled features
|
|
10891111
|
2022-02-13T22:52:53
|
|
Redirect links to xmlsoft.org
Documentation and releases are now available on gitlab.gnome.org.
|
|
8be44aeb
|
2022-02-07T20:54:33
|
|
Fix "xmllint -"
Short-lived regression from commit d12be00d.
|
|
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.
|
|
247cfa27
|
2022-02-01T16:21:10
|
|
Fix parsing of xmllint --maxmem option
Fixes #195.
|
|
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.
|
|
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.
|