Nick Wellnhofer
c5e9a5b2c9
parser: Use catalogs with resource loader
2024-06-17 15:49:25 +02:00
Nick Wellnhofer
6deebe036a
parser: Make xmlInputCreateUrl handle HTTP input
2024-06-17 15:47:43 +02:00
Nick Wellnhofer
d2fd9d37b0
parser: Fix swapped arguments
2024-06-17 15:47:43 +02:00
Nick Wellnhofer
2608baaf92
parser: Make failure to load main document a warning
...
Revert the change that made failures to load the main document an error.
This fixes the --path option of xmllint and xsltproc.
Should fix #733 .
2024-06-14 20:06:07 +02:00
Nick Wellnhofer
dba1ed85a3
ftp: Remove FTP support
...
Remove the built-in FTP client. If you configure --with-legacy, old
symbols are retained for ABI compatibility.
2024-06-12 18:19:55 +02:00
Nick Wellnhofer
5238404325
parser: Pass resource type to resource loader
2024-06-12 16:36:12 +02:00
Nick Wellnhofer
ab5e6debd1
parser: Introduce XML_INPUT_NETWORK input flag
...
This allows to disable network access when creating parser inputs with
xmlInputCreateUrl.
2024-06-12 16:36:12 +02:00
Nick Wellnhofer
89fcae4dfd
parser: Don't report malloc failures when creating context
...
We don't want messages to stderr before an error handler could be set on
a parser context.
2024-06-12 16:36:12 +02:00
Nick Wellnhofer
64ad272525
parser: Introduce per-context resource loader
2024-06-12 16:22:52 +02:00
Nick Wellnhofer
b9d2f3c911
parser: Introduce new input API
...
- xmlInputCreateUrl
- xmlInputCreateMemory
- xmlInputCreateString
- xmlInputCreateFd
- xmlInputCreateIO
- xmlInputSetEncoding
These functions don't take a parser context and work on xmlParserInputs,
replacing functions working on xmlParserInputBuffers.
xmlInputCreateUrl and xmlInputSetEncoding offer fine-grained error
handling.
Several XML_INPUT_* flags offer additional control.
2024-06-12 16:22:52 +02:00
Nick Wellnhofer
410931e385
parser: Only set input ID for PE refs
...
Other input streams don't require IDs.
2024-06-12 16:22:52 +02:00
Nick Wellnhofer
a3b2baeb67
parser: Simplify xmlNewInputFromFile
2024-06-12 16:22:52 +02:00
Nick Wellnhofer
0b58838764
parser: Rework XML_PARSE_NONET handling
2024-06-12 16:22:52 +02:00
Nick Wellnhofer
ff3b091910
parser: Implement XML_PARSE_NO_UNZIP option
2024-06-12 16:14:15 +02:00
Nick Wellnhofer
1432949d3c
io: Pass input flags to xmlParserInputBufferCreateUrl
2024-06-12 16:14:15 +02:00
Nick Wellnhofer
b5890cb425
io: Remove xmlParserInputBufferCreateFilenameSafe
2024-06-12 16:14:15 +02:00
Nick Wellnhofer
1b1e8b3c12
io: Stop invoking generic error handler for IO errors
2024-06-12 16:14:15 +02:00
Nick Wellnhofer
47cbb6bb3c
doc: Don't mention xmlNewInputURL
2024-06-12 16:04:45 +02:00
Nick Wellnhofer
4467b89143
Add missing argument checks for new API functions
2024-06-12 13:57:20 +02:00
Nick Wellnhofer
e75e878e02
doc: Update and fix documentation
2024-05-20 14:23:39 +02:00
Nick Wellnhofer
ec2f68f164
parser: Report malloc failure in xmlNewInputFromFile
2024-05-14 16:04:56 +02:00
Nick Wellnhofer
4ff2dccf9f
SAX2: Warn if URI resolution failed
2024-05-13 12:50:08 +02:00
Nick Wellnhofer
84a71860a8
xmlreader: Fix xmlTextReaderConstEncoding
...
Regression from commit f1c1f5c6 .
Fixes #697 .
2024-02-26 15:33:06 +01:00
Nick Wellnhofer
c444c96e20
parser: Report OOM errors even after parser was stopped
2024-02-13 12:23:54 +01:00
Nick Wellnhofer
63986c45b9
parser: Report fatal error if document entity couldn't be loaded
...
Only lower error level when loading entities.
Fixes #667 .
2024-01-22 21:07:41 +01:00
Nick Wellnhofer
12f0bb9478
parser: Synchronize more options
2024-01-05 20:39:40 +01:00
Nick Wellnhofer
3efbe916a1
parser: Mark 'token' member as unused in xmlParserCtxt
2024-01-05 20:39:40 +01:00
Nick Wellnhofer
b82fd81d06
parser: Rework xmlCtxtParseDocument
...
Make xmlCtxtParseDocument take a parser input which can be popped after
parsing.
2024-01-05 20:39:40 +01:00
Nick Wellnhofer
d0eb5a7e54
parser: Remove xmlErrEncodingInt
...
Convert the last user to xmlFatalErr.
2024-01-04 15:28:57 +01:00
Nick Wellnhofer
f30b9b2331
fuzz: Add assertion in xmlCopyCharMultibyte
...
This is an internal function that should never receive out-of-range
codepoints.
2024-01-04 15:28:57 +01:00
Nick Wellnhofer
0821efc8ee
encoding: Check whether encoding handlers support input/output
...
The "HTML" encoding handler doesn't support input which could lead to a
wrong error report.
2024-01-02 19:48:23 +01:00
Nick Wellnhofer
85f99023ae
parser: Fix buffer size checks
...
Don't test size of remaining data. This causes false positives with
memory buffers.
Also impose XML_MAX_HUGE_LENGTH limit when parsing with XML_PARSE_HUGE.
2024-01-02 19:48:23 +01:00
Nick Wellnhofer
16b0dbc1b3
parser: Fix XML_ERR_UNSUPPORTED_ENCODING errors
...
Commit 45157261 added the check in the wrong place.
Also allow unsupported encoding in xmlNewInputInternal.
Fixes #654 .
2024-01-02 14:17:27 +01:00
Nick Wellnhofer
e45a4d7115
io: Always forward IO errors to global handler
...
The HTTP module raises errors without context. This won't be fixed,
so send them to the global error handler.
2023-12-29 01:22:13 +01:00
Nick Wellnhofer
7e0bbbc143
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.
2023-12-29 01:22:13 +01:00
Nick Wellnhofer
451572615c
parser: Downgrade XML_ERR_UNSUPPORTED_ENCODING to warning
...
If the actual encoding is UTF-8 or ASCII, we don't want to fail.
2023-12-29 01:22:13 +01:00
Nick Wellnhofer
24b7144f2c
parser: More refactoring of entity parsing
...
Remove xmlCreateEntityParserCtxtInternal.
Rework xmlNewEntityInputStream.
2023-12-29 01:22:13 +01:00
Nick Wellnhofer
6a9a88a17f
parser: Move progressive flag into input struct
2023-12-29 01:20:08 +01:00
Nick Wellnhofer
d944a41515
parser: Fix in-parameter-entity and in-external-dtd checks
...
Use in ctxt->input->entity instead of ctxt->inputNr to determine whether
we are inside a parameter entity.
Stop using ctxt->external to check whether we're in an external DTD.
This is signaled by ctxt->inSubset == 2.
2023-12-29 01:19:56 +01:00
Nick Wellnhofer
c1bddd4c26
parser: Mark 'length' member of xmlParserInput as unused
2023-12-25 23:38:40 +01:00
Nick Wellnhofer
955c177f69
parser: Stop using 'directory' struct member
...
This was only used as a pointless fallback for URI resolution.
2023-12-25 23:38:40 +01:00
Nick Wellnhofer
60841beba6
parser: Make XML_IO_NETWORK_ATTEMPT behave as before
...
Always reported to generic error, not to parser context for backward
compatibility. Several downstream test suites rely on this behavior.
2023-12-25 23:38:40 +01:00
Nick Wellnhofer
a26934105e
io: Move some code from xmlIO.c to parserInternals.c
...
Move everything related to parser contexts to parserInternals.c.
2023-12-25 23:38:40 +01:00
Nick Wellnhofer
c8f1f4a280
doc: Improve documentation of error handlers
2023-12-21 17:36:17 +01:00
Nick Wellnhofer
130436917c
parser: Rename xmlErrParser to xmlCtxtErr
2023-12-21 15:02:24 +01:00
Nick Wellnhofer
8d0aaf4b95
parser: Remove xmlErrEncoding
...
Use xmlFatalErr or xmlCtxtErrIO.
2023-12-21 15:02:24 +01:00
Nick Wellnhofer
9fbe46ba17
io: Consolidate error messages
2023-12-21 15:02:24 +01:00
Nick Wellnhofer
23345a1cb1
io: Report IO errors through xmlCtxtErrIO
...
This is also a new public API function to be used in external entity
loaders.
2023-12-21 15:02:24 +01:00
Nick Wellnhofer
7e511f35f1
io: Pass error codes from xmlFileOpenReal to xmlNewInputFromFile
...
This allows to report the reason why opening a file failed to the parser
context and improve error messages. Now we can also remove the stat call
before opening a file.
2023-12-21 15:02:24 +01:00
Nick Wellnhofer
531d06add6
error: Stop printing some errors by default
...
Unfortunately, it's long-standing behavior for libxml2 to print all
reported errors to stderr by default. This default behavior is now
partially disabled. If no error handler is set, only parser and
validation errors are passed to a generic error handler or printed to
stderr. Other errors are still available via xmlGetLastError and can be
captured with a structured error handler.
2023-12-21 15:02:24 +01:00