1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-10-26 12:25:09 +03:00
Commit Graph

6549 Commits

Author SHA1 Message Date
Nick Wellnhofer
22455e97f9 ci: Add meson to Docker container 2024-03-22 17:52:35 +01:00
Nick Wellnhofer
d8741b8196 fuzz: Fix namespaces after xmlDOMWrapRemoveNode 2024-03-22 14:55:22 +01:00
Nick Wellnhofer
05c147c3ef SAX2: Report malloc failure in xmlSAX2AttributeNs 2024-03-22 13:03:37 +01:00
Nick Wellnhofer
0d04d79cd4 xinclude: Report malloc failures in xmlXIncludeIncludeNode 2024-03-22 12:26:28 +01:00
Nick Wellnhofer
7b316c1139 tree: Fix uninitialized value in xmlSearchNsByHrefSafe
Short-lived regression.
2024-03-22 12:15:23 +01:00
Nick Wellnhofer
d4d1f3f33d fuzz: Enable API fuzzer on OSS-Fuzz 2024-03-20 18:45:10 +01:00
Nick Wellnhofer
5ea2970357 fuzz: Reorder API fuzzer ops 2024-03-20 18:41:26 +01:00
Nick Wellnhofer
da32c852a4 fuzz: Check text nodes after merging
Avoid exponential growth of text.
2024-03-20 18:33:40 +01:00
Nick Wellnhofer
577e2516d0 valid: Check for NULL node->name in xmlSnprintfElements
Unfortunately, we can have NULL element names if xmlSetTreeDoc fails.
2024-03-19 17:06:07 +01:00
Nick Wellnhofer
a279aae30f io: Allocate output buffer with XML_BUFFER_ALLOC_IO
This allows efficient shrinking of memory buffers.

Support IO buffers in xmlBufDetach.
2024-03-18 15:14:43 +01:00
Nick Wellnhofer
072facc49e encoding: Don't shrink input too early in xmlCharEncOutput
Some exotic encodings like ISO646-FR don't support '#' characters, so
encoding a character reference can actually fail. Don't skip the
offending input in this case so the error will be reported on the next
call.
2024-03-18 15:14:43 +01:00
Nick Wellnhofer
3f05508a53 tree: Report malloc failures in attribute setters 2024-03-18 15:14:43 +01:00
Nick Wellnhofer
3bdd0d7b30 xinclude: Set errNo in xmlXIncludeErrMemory 2024-03-18 14:13:15 +01:00
Nick Wellnhofer
6a49bb777c tree: Introduce xmlSearchNsSafe
After the failed experiment with a static XML namespace, introduce
versions of xmlSearchNs that report malloc failures.

Optimize the no-document case by only adding the XML namespace
declaration if it wasn't found in an ancestor.
2024-03-17 21:07:46 +01:00
Nick Wellnhofer
047ea3ecb3 Revert "tree: Allocate XML namespace statically"
This reverts commit 2840e33c5e.
2024-03-17 21:04:40 +01:00
Nick Wellnhofer
fb1e63025b save: Check for NULL node->name in xhtmlIsEmpty 2024-03-17 19:42:59 +01:00
Nick Wellnhofer
869f72442a schemas: Fix ADD_ANNOTATION
Fix adding multiple annotations.
2024-03-17 16:14:04 +01:00
Nick Wellnhofer
1b4bf22c14 xmlreader: Fix memory leak in xmlTextReaderFreeProp
Short-lived regression.
2024-03-17 16:14:04 +01:00
Nick Wellnhofer
dc2a03d482 valid: Deprecate internal validation functions 2024-03-16 15:20:08 +01:00
Nick Wellnhofer
c0edd792ba fuzz: Move fuzzer options to environment variable 2024-03-16 15:20:08 +01:00
Nick Wellnhofer
55175f7537 fuzz: Add OSS-Fuzz build.sh
Move build.sh to our repo to facilitate changes.
2024-03-15 22:07:23 +01:00
Nick Wellnhofer
f14f089fe3 fuzz: Add some comments in api.c 2024-03-15 22:07:23 +01:00
Nick Wellnhofer
ee0c1f87c0 fuzz: New tree API fuzzer 2024-03-15 19:54:27 +01:00
Nick Wellnhofer
2469d5d065 tree: Tighten source doc check in xmlDOMWrapAdoptNode
sourceDoc must match even if node->doc is NULL.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
37556eb32a tree: Check destParent->doc in xmlDOMWrapCloneNode
The document must match destDoc to avoid tree corruption.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
7c48c01b1c tree: Switch to xmlNodeSetDoc in xmlDOMWrapAdoptNode
Report malloc failures.

Also fixes an issue where xmlDOMWrapAdoptAttr would descend into entity
references.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
be2c26fb67 tree: Fix tree iteration in xmlDOMWrapRemoveNode
We didn't descend into elements having attributes.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
4a90ce089c tree: Don't abort early if malloc fails in DOM functions
If malloc fails halfway through updating a subtree, we must process the
rest of the tree to avoid tree corruption.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
ad019ba102 tree: Fix reallocation in xmlDOMWrapNSNormAddNsMapItem2 2024-03-15 19:54:27 +01:00
Nick Wellnhofer
e321eba0c7 tree: Set parent->last early in xmlDOMWrapCloneNode
Avoids a corrupted tree in error case.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
84e6dc9e5b tree: Declare namespace on clone in xmlDOMWrapCloneNode
The new namespace must be declared on the cloned node, not the source
node.
2024-03-15 19:54:27 +01:00
Nick Wellnhofer
09905670f4 tree: Don't free linked DOM namespaces in error case 2024-03-15 19:54:27 +01:00
Nick Wellnhofer
27f07f1002 tree: Report malloc failure in xmlDOMWrapCloneNode
Also don't store text content in dictionaries.
2024-03-15 19:54:26 +01:00
Nick Wellnhofer
8d04f0eea0 tree: Refactor text node updates 2024-03-15 19:54:26 +01:00
Nick Wellnhofer
4ccd3eb80f tree: Refactor node insertion
Also fixes a text coalescing bug.
2024-03-15 19:54:26 +01:00
Nick Wellnhofer
9f049afa6d tree: Refactor element creation and parsing of attribute values
Replace xmlStringGetNodeList and xmlStringLenGetNodeList with
xmlNodeParseContentInternal which also updates an optional parent
node.

Don't look up entities a second time via xmlNewReference.
2024-03-15 19:54:26 +01:00
Nick Wellnhofer
9991fae4f4 tree: Simplify xmlNodeGetContent, xmlBufGetNodeContent
Factor out xmlBufGetEntityRefContent and xmlBufGetChildContent.

Also allow entity declarations.

Optimize single text children.

Ignore missing or recursive entities silently.

Prefer xmlNodeGetContent over xmlNodeListGetString.

Check for entity cycles in xmlBufGetNodeContent.

Use children pointer of entity reference nodes if available to look up
entities.
2024-03-15 19:47:08 +01:00
Nick Wellnhofer
05adfbf880 buf: Don't use default buffer size for small strings
Detaching strings from a buffer with a default size of 4096 can waste
a lot of memory.
2024-03-15 19:47:08 +01:00
Nick Wellnhofer
291a9d0f81 valid: Set document on dummmy element declaration 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
e3342f731c tree: Work on documentation 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
aef1ff4372 string: Fix xmlStrncatNew(NULL, "")
This should return "" not NULL.
2024-03-15 19:47:08 +01:00
Nick Wellnhofer
9033a27068 malloc-fail: Stop using xmlSplitQName2
This function doesn't report malloc failures.
2024-03-15 19:47:08 +01:00
Nick Wellnhofer
b38f8eae07 malloc-fail: Report in xmlAddAttributeDecl 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
8677f54703 malloc-fail: Fix erroneous report in xmlNodeGetBaseSafe 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
9b3750c660 malloc-fail: Avoid use-after-free in xmlAddChild
Returning NULL doesn't signal that the node was freed.
2024-03-15 19:47:08 +01:00
Nick Wellnhofer
702f2e463c malloc-fail: Fix memory leak in xmlNewNodeEatName 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
10c202f9dc malloc-fail: Check for NULL pointer in xmlSaveNotation* 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
9c2d451c02 malloc-fail: Fix use-after-free in xmlBufBackToBuffer 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
edbf1eb63b entities: Don't allow null name in xmlNewEntity 2024-03-15 19:47:08 +01:00
Nick Wellnhofer
50816b8d1a entities: Check for illegal entity types in xmlAddEntity 2024-03-15 19:47:08 +01:00