Compare commits
10 Commits
7204e7d261
...
bc50c96060
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc50c96060 | ||
|
|
3cc5b28f32 | ||
|
|
4a76edfd11 | ||
|
|
6e7d4c2b20 | ||
|
|
8e6aea5b56 | ||
|
|
03ea14d3f6 | ||
|
|
544f800c39 | ||
|
|
95b9b1114e | ||
|
|
62c75adb4a | ||
|
|
ebe8e5934b |
45
CVE-2024-55549.patch
Normal file
45
CVE-2024-55549.patch
Normal file
@ -0,0 +1,45 @@
|
||||
From 46041b65f2fbddf5c284ee1a1332fa2c515c0515 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Thu, 5 Dec 2024 12:43:19 +0100
|
||||
Subject: [PATCH] [CVE-2024-55549] Fix UAF related to excluded namespaces
|
||||
|
||||
Definitions of excluded namespaces could be deleted in
|
||||
xsltParseTemplateContent. Store excluded namespace URIs in the
|
||||
stylesheet's dictionary instead of referencing the namespace definition.
|
||||
|
||||
Thanks to Ivan Fratric for the report!
|
||||
|
||||
Fixes #127.
|
||||
---
|
||||
libxslt/xslt.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libxslt/xslt.c b/libxslt/xslt.c
|
||||
index 22fdb758..6532f976 100644
|
||||
--- a/libxslt/xslt.c
|
||||
+++ b/libxslt/xslt.c
|
||||
@@ -147,10 +147,20 @@ xsltParseContentError(xsltStylesheetPtr style,
|
||||
* in case of error
|
||||
*/
|
||||
static int
|
||||
-exclPrefixPush(xsltStylesheetPtr style, xmlChar * value)
|
||||
+exclPrefixPush(xsltStylesheetPtr style, xmlChar * orig)
|
||||
{
|
||||
+ xmlChar *value;
|
||||
int i;
|
||||
|
||||
+ /*
|
||||
+ * orig can come from a namespace definition on a node which
|
||||
+ * could be deleted later, for example in xsltParseTemplateContent.
|
||||
+ * Store the string in stylesheet's dict to avoid use after free.
|
||||
+ */
|
||||
+ value = (xmlChar *) xmlDictLookup(style->dict, orig, -1);
|
||||
+ if (value == NULL)
|
||||
+ return(-1);
|
||||
+
|
||||
if (style->exclPrefixMax == 0) {
|
||||
style->exclPrefixMax = 4;
|
||||
style->exclPrefixTab =
|
||||
--
|
||||
GitLab
|
||||
|
||||
130
CVE-2025-24855.patch
Normal file
130
CVE-2025-24855.patch
Normal file
@ -0,0 +1,130 @@
|
||||
From c7c7f1f78dd202a053996fcefe57eb994aec8ef2 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 17 Dec 2024 15:56:21 +0100
|
||||
Subject: [PATCH] [CVE-2025-24855] Fix use-after-free of XPath context node
|
||||
|
||||
There are several places where the XPath context node isn't restored
|
||||
after modifying it, leading to use-after-free errors with nested XPath
|
||||
evaluations and dynamically allocated context nodes.
|
||||
|
||||
Restore XPath context node in
|
||||
|
||||
- xsltNumberFormatGetValue
|
||||
- xsltEvalXPathPredicate
|
||||
- xsltEvalXPathStringNs
|
||||
- xsltComputeSortResultInternal
|
||||
|
||||
In some places, the transformation context node was saved and restored
|
||||
which shouldn't be necessary.
|
||||
|
||||
Thanks to Ivan Fratric for the report!
|
||||
|
||||
Fixes #128.
|
||||
---
|
||||
libxslt/numbers.c | 5 +++++
|
||||
libxslt/templates.c | 9 ++++++---
|
||||
libxslt/xsltutils.c | 4 ++--
|
||||
3 files changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libxslt/numbers.c b/libxslt/numbers.c
|
||||
index 0e1fa136..741124d1 100644
|
||||
--- a/libxslt/numbers.c
|
||||
+++ b/libxslt/numbers.c
|
||||
@@ -733,9 +733,12 @@ xsltNumberFormatGetValue(xmlXPathContextPtr context,
|
||||
int amount = 0;
|
||||
xmlBufferPtr pattern;
|
||||
xmlXPathObjectPtr obj;
|
||||
+ xmlNodePtr oldNode;
|
||||
|
||||
pattern = xmlBufferCreate();
|
||||
if (pattern != NULL) {
|
||||
+ oldNode = context->node;
|
||||
+
|
||||
xmlBufferCCat(pattern, "number(");
|
||||
xmlBufferCat(pattern, value);
|
||||
xmlBufferCCat(pattern, ")");
|
||||
@@ -748,6 +751,8 @@ xsltNumberFormatGetValue(xmlXPathContextPtr context,
|
||||
xmlXPathFreeObject(obj);
|
||||
}
|
||||
xmlBufferFree(pattern);
|
||||
+
|
||||
+ context->node = oldNode;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
diff --git a/libxslt/templates.c b/libxslt/templates.c
|
||||
index f08b9bda..1c8d96e2 100644
|
||||
--- a/libxslt/templates.c
|
||||
+++ b/libxslt/templates.c
|
||||
@@ -61,6 +61,7 @@ xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
|
||||
int oldNsNr;
|
||||
xmlNsPtr *oldNamespaces;
|
||||
xmlNodePtr oldInst;
|
||||
+ xmlNodePtr oldNode;
|
||||
int oldProximityPosition, oldContextSize;
|
||||
|
||||
if ((ctxt == NULL) || (ctxt->inst == NULL)) {
|
||||
@@ -69,6 +70,7 @@ xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
|
||||
return(0);
|
||||
}
|
||||
|
||||
+ oldNode = ctxt->xpathCtxt->node;
|
||||
oldContextSize = ctxt->xpathCtxt->contextSize;
|
||||
oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
|
||||
oldNsNr = ctxt->xpathCtxt->nsNr;
|
||||
@@ -96,8 +98,9 @@ xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
|
||||
ctxt->state = XSLT_STATE_STOPPED;
|
||||
ret = 0;
|
||||
}
|
||||
- ctxt->xpathCtxt->nsNr = oldNsNr;
|
||||
|
||||
+ ctxt->xpathCtxt->node = oldNode;
|
||||
+ ctxt->xpathCtxt->nsNr = oldNsNr;
|
||||
ctxt->xpathCtxt->namespaces = oldNamespaces;
|
||||
ctxt->inst = oldInst;
|
||||
ctxt->xpathCtxt->contextSize = oldContextSize;
|
||||
@@ -137,7 +140,7 @@ xsltEvalXPathStringNs(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
|
||||
}
|
||||
|
||||
oldInst = ctxt->inst;
|
||||
- oldNode = ctxt->node;
|
||||
+ oldNode = ctxt->xpathCtxt->node;
|
||||
oldPos = ctxt->xpathCtxt->proximityPosition;
|
||||
oldSize = ctxt->xpathCtxt->contextSize;
|
||||
oldNsNr = ctxt->xpathCtxt->nsNr;
|
||||
@@ -167,7 +170,7 @@ xsltEvalXPathStringNs(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
|
||||
"xsltEvalXPathString: returns %s\n", ret));
|
||||
#endif
|
||||
ctxt->inst = oldInst;
|
||||
- ctxt->node = oldNode;
|
||||
+ ctxt->xpathCtxt->node = oldNode;
|
||||
ctxt->xpathCtxt->contextSize = oldSize;
|
||||
ctxt->xpathCtxt->proximityPosition = oldPos;
|
||||
ctxt->xpathCtxt->nsNr = oldNsNr;
|
||||
diff --git a/libxslt/xsltutils.c b/libxslt/xsltutils.c
|
||||
index 0e9dc62f..a20da961 100644
|
||||
--- a/libxslt/xsltutils.c
|
||||
+++ b/libxslt/xsltutils.c
|
||||
@@ -1065,8 +1065,8 @@ xsltComputeSortResultInternal(xsltTransformContextPtr ctxt, xmlNodePtr sort,
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
- oldNode = ctxt->node;
|
||||
oldInst = ctxt->inst;
|
||||
+ oldNode = ctxt->xpathCtxt->node;
|
||||
oldPos = ctxt->xpathCtxt->proximityPosition;
|
||||
oldSize = ctxt->xpathCtxt->contextSize;
|
||||
oldNsNr = ctxt->xpathCtxt->nsNr;
|
||||
@@ -1137,8 +1137,8 @@ xsltComputeSortResultInternal(xsltTransformContextPtr ctxt, xmlNodePtr sort,
|
||||
results[i] = NULL;
|
||||
}
|
||||
}
|
||||
- ctxt->node = oldNode;
|
||||
ctxt->inst = oldInst;
|
||||
+ ctxt->xpathCtxt->node = oldNode;
|
||||
ctxt->xpathCtxt->contextSize = oldSize;
|
||||
ctxt->xpathCtxt->proximityPosition = oldPos;
|
||||
ctxt->xpathCtxt->nsNr = oldNsNr;
|
||||
--
|
||||
GitLab
|
||||
|
||||
36
Fix-double-free-with-stylesheets-containing-entity-n.patch
Normal file
36
Fix-double-free-with-stylesheets-containing-entity-n.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 3e8bbcdec8d2318ca8ab27a2a4a509a5d9bb2d51 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 2 Feb 2021 04:28:15 +0100
|
||||
Subject: [PATCH] Fix double-free with stylesheets containing entity nodes
|
||||
|
||||
Fix broken logic to make sure that entity nodes are deleted from the
|
||||
stylesheet. Note that stylesheets parsed with XML_PARSE_NOENT, which
|
||||
is included in XSLT_PARSE_OPTIONS, aren't affected.
|
||||
|
||||
Found by OSS-Fuzz.
|
||||
---
|
||||
libxslt/xslt.c | 8 ++------
|
||||
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/libxslt/xslt.c b/libxslt/xslt.c
|
||||
index 7a1ce01..69116f2 100644
|
||||
--- a/libxslt/xslt.c
|
||||
+++ b/libxslt/xslt.c
|
||||
@@ -3656,12 +3656,8 @@ xsltPreprocessStylesheet(xsltStylesheetPtr style, xmlNodePtr cur)
|
||||
(!xsltCheckExtURI(style, cur->ns->href))) {
|
||||
goto skip_children;
|
||||
} else if (cur->children != NULL) {
|
||||
- if ((cur->children->type != XML_ENTITY_DECL) &&
|
||||
- (cur->children->type != XML_ENTITY_REF_NODE) &&
|
||||
- (cur->children->type != XML_ENTITY_NODE)) {
|
||||
- cur = cur->children;
|
||||
- continue;
|
||||
- }
|
||||
+ cur = cur->children;
|
||||
+ continue;
|
||||
}
|
||||
|
||||
skip_children:
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
49
Fix-quadratic-runtime-with-text-and-xsl-message.patch
Normal file
49
Fix-quadratic-runtime-with-text-and-xsl-message.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From 4ccc06b56b8b6d39c29932c92cd1ed82f6698d6f Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Sun, 20 Sep 2020 15:14:47 +0200
|
||||
Subject: [PATCH 33/37] Fix quadratic runtime with text and <xsl:message>
|
||||
|
||||
Backup and restore "last text" data in xsltEvalTemplateString.
|
||||
Otherwise, optimization of string concatenation would be disabled
|
||||
whenever an xsl:message was processed.
|
||||
|
||||
Found by OSS-Fuzz.
|
||||
---
|
||||
libxslt/templates.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/libxslt/templates.c b/libxslt/templates.c
|
||||
index 48b73a5..4108ed2 100644
|
||||
--- a/libxslt/templates.c
|
||||
+++ b/libxslt/templates.c
|
||||
@@ -210,6 +210,8 @@ xsltEvalTemplateString(xsltTransformContextPtr ctxt,
|
||||
{
|
||||
xmlNodePtr oldInsert, insert = NULL;
|
||||
xmlChar *ret;
|
||||
+ const xmlChar *oldLastText;
|
||||
+ int oldLastTextSize, oldLastTextUse;
|
||||
|
||||
if ((ctxt == NULL) || (contextNode == NULL) || (inst == NULL) ||
|
||||
(inst->type != XML_ELEMENT_NODE))
|
||||
@@ -233,12 +235,18 @@ xsltEvalTemplateString(xsltTransformContextPtr ctxt,
|
||||
}
|
||||
oldInsert = ctxt->insert;
|
||||
ctxt->insert = insert;
|
||||
+ oldLastText = ctxt->lasttext;
|
||||
+ oldLastTextSize = ctxt->lasttsize;
|
||||
+ oldLastTextUse = ctxt->lasttuse;
|
||||
/*
|
||||
* OPTIMIZE TODO: if inst->children consists only of text-nodes.
|
||||
*/
|
||||
xsltApplyOneTemplate(ctxt, contextNode, inst->children, NULL, NULL);
|
||||
|
||||
ctxt->insert = oldInsert;
|
||||
+ ctxt->lasttext = oldLastText;
|
||||
+ ctxt->lasttsize = oldLastTextSize;
|
||||
+ ctxt->lasttuse = oldLastTextUse;
|
||||
|
||||
ret = xmlNodeGetContent(insert);
|
||||
if (insert != NULL)
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
198
Fix-use-after-free-in-xsltApplyTemplates.patch
Normal file
198
Fix-use-after-free-in-xsltApplyTemplates.patch
Normal file
@ -0,0 +1,198 @@
|
||||
From 50f9c9cd3b7dfe9b3c8c795247752d1fdcadcac8 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Sat, 12 Jun 2021 20:02:53 +0200
|
||||
Subject: [PATCH] Fix use-after-free in xsltApplyTemplates
|
||||
|
||||
xsltApplyTemplates without a select expression could delete nodes in
|
||||
the source document.
|
||||
|
||||
1. Text nodes with strippable whitespace
|
||||
|
||||
Whitespace from input documents is already stripped, so there's no
|
||||
need to strip it again. Under certain circumstances, xsltApplyTemplates
|
||||
could be fooled into deleting text nodes that are still referenced,
|
||||
resulting in a use-after-free.
|
||||
|
||||
2. The DTD
|
||||
|
||||
The DTD was only unlinked, but there's no good reason to do this just
|
||||
now. Maybe it was meant as a micro-optimization.
|
||||
|
||||
3. Unknown nodes
|
||||
|
||||
Useless and dangerous as well, especially with XInclude nodes.
|
||||
See https://gitlab.gnome.org/GNOME/libxml2/-/issues/268
|
||||
|
||||
Simply stop trying to uselessly delete nodes when applying a template.
|
||||
This part of the code is probably a leftover from a time where
|
||||
xsltApplyStripSpaces wasn't implemented yet. Also note that
|
||||
xsltApplyTemplates with a select expression never tried to delete
|
||||
nodes.
|
||||
|
||||
Also stop xsltDefaultProcessOneNode from deleting nodes for the same
|
||||
reasons.
|
||||
|
||||
This fixes CVE-2021-30560.
|
||||
---
|
||||
libxslt/transform.c | 119 +++-----------------------------------------
|
||||
1 file changed, 7 insertions(+), 112 deletions(-)
|
||||
|
||||
diff --git a/libxslt/transform.c b/libxslt/transform.c
|
||||
index 04522154..3aba354f 100644
|
||||
--- a/libxslt/transform.c
|
||||
+++ b/libxslt/transform.c
|
||||
@@ -1895,7 +1895,7 @@ static void
|
||||
xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||
xsltStackElemPtr params) {
|
||||
xmlNodePtr copy;
|
||||
- xmlNodePtr delete = NULL, cur;
|
||||
+ xmlNodePtr cur;
|
||||
int nbchild = 0, oldSize;
|
||||
int childno = 0, oldPos;
|
||||
xsltTemplatePtr template;
|
||||
@@ -1968,54 +1968,13 @@ xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||
return;
|
||||
}
|
||||
/*
|
||||
- * Handling of Elements: first pass, cleanup and counting
|
||||
+ * Handling of Elements: first pass, counting
|
||||
*/
|
||||
cur = node->children;
|
||||
while (cur != NULL) {
|
||||
- switch (cur->type) {
|
||||
- case XML_TEXT_NODE:
|
||||
- case XML_CDATA_SECTION_NODE:
|
||||
- case XML_DOCUMENT_NODE:
|
||||
- case XML_HTML_DOCUMENT_NODE:
|
||||
- case XML_ELEMENT_NODE:
|
||||
- case XML_PI_NODE:
|
||||
- case XML_COMMENT_NODE:
|
||||
- nbchild++;
|
||||
- break;
|
||||
- case XML_DTD_NODE:
|
||||
- /* Unlink the DTD, it's still reachable using doc->intSubset */
|
||||
- if (cur->next != NULL)
|
||||
- cur->next->prev = cur->prev;
|
||||
- if (cur->prev != NULL)
|
||||
- cur->prev->next = cur->next;
|
||||
- break;
|
||||
- default:
|
||||
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||
- XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
|
||||
- "xsltDefaultProcessOneNode: skipping node type %d\n",
|
||||
- cur->type));
|
||||
-#endif
|
||||
- delete = cur;
|
||||
- }
|
||||
+ if (IS_XSLT_REAL_NODE(cur))
|
||||
+ nbchild++;
|
||||
cur = cur->next;
|
||||
- if (delete != NULL) {
|
||||
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||
- XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
|
||||
- "xsltDefaultProcessOneNode: removing ignorable blank node\n"));
|
||||
-#endif
|
||||
- xmlUnlinkNode(delete);
|
||||
- xmlFreeNode(delete);
|
||||
- delete = NULL;
|
||||
- }
|
||||
- }
|
||||
- if (delete != NULL) {
|
||||
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||
- XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
|
||||
- "xsltDefaultProcessOneNode: removing ignorable blank node\n"));
|
||||
-#endif
|
||||
- xmlUnlinkNode(delete);
|
||||
- xmlFreeNode(delete);
|
||||
- delete = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4864,7 +4823,7 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||
xsltStylePreCompPtr comp = (xsltStylePreCompPtr) castedComp;
|
||||
#endif
|
||||
int i;
|
||||
- xmlNodePtr cur, delNode = NULL, oldContextNode;
|
||||
+ xmlNodePtr cur, oldContextNode;
|
||||
xmlNodeSetPtr list = NULL, oldList;
|
||||
xsltStackElemPtr withParams = NULL;
|
||||
int oldXPProximityPosition, oldXPContextSize;
|
||||
@@ -4998,73 +4957,9 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||
else
|
||||
cur = NULL;
|
||||
while (cur != NULL) {
|
||||
- switch (cur->type) {
|
||||
- case XML_TEXT_NODE:
|
||||
- if ((IS_BLANK_NODE(cur)) &&
|
||||
- (cur->parent != NULL) &&
|
||||
- (cur->parent->type == XML_ELEMENT_NODE) &&
|
||||
- (ctxt->style->stripSpaces != NULL)) {
|
||||
- const xmlChar *val;
|
||||
-
|
||||
- if (cur->parent->ns != NULL) {
|
||||
- val = (const xmlChar *)
|
||||
- xmlHashLookup2(ctxt->style->stripSpaces,
|
||||
- cur->parent->name,
|
||||
- cur->parent->ns->href);
|
||||
- if (val == NULL) {
|
||||
- val = (const xmlChar *)
|
||||
- xmlHashLookup2(ctxt->style->stripSpaces,
|
||||
- BAD_CAST "*",
|
||||
- cur->parent->ns->href);
|
||||
- }
|
||||
- } else {
|
||||
- val = (const xmlChar *)
|
||||
- xmlHashLookup2(ctxt->style->stripSpaces,
|
||||
- cur->parent->name, NULL);
|
||||
- }
|
||||
- if ((val != NULL) &&
|
||||
- (xmlStrEqual(val, (xmlChar *) "strip"))) {
|
||||
- delNode = cur;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- /* Intentional fall-through */
|
||||
- case XML_ELEMENT_NODE:
|
||||
- case XML_DOCUMENT_NODE:
|
||||
- case XML_HTML_DOCUMENT_NODE:
|
||||
- case XML_CDATA_SECTION_NODE:
|
||||
- case XML_PI_NODE:
|
||||
- case XML_COMMENT_NODE:
|
||||
- xmlXPathNodeSetAddUnique(list, cur);
|
||||
- break;
|
||||
- case XML_DTD_NODE:
|
||||
- /* Unlink the DTD, it's still reachable
|
||||
- * using doc->intSubset */
|
||||
- if (cur->next != NULL)
|
||||
- cur->next->prev = cur->prev;
|
||||
- if (cur->prev != NULL)
|
||||
- cur->prev->next = cur->next;
|
||||
- break;
|
||||
- case XML_NAMESPACE_DECL:
|
||||
- break;
|
||||
- default:
|
||||
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||
- XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
|
||||
- "xsltApplyTemplates: skipping cur type %d\n",
|
||||
- cur->type));
|
||||
-#endif
|
||||
- delNode = cur;
|
||||
- }
|
||||
+ if (IS_XSLT_REAL_NODE(cur))
|
||||
+ xmlXPathNodeSetAddUnique(list, cur);
|
||||
cur = cur->next;
|
||||
- if (delNode != NULL) {
|
||||
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||
- XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
|
||||
- "xsltApplyTemplates: removing ignorable blank cur\n"));
|
||||
-#endif
|
||||
- xmlUnlinkNode(delNode);
|
||||
- xmlFreeNode(delNode);
|
||||
- delNode = NULL;
|
||||
- }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
42
libxslt.spec
42
libxslt.spec
@ -1,16 +1,21 @@
|
||||
Name: libxslt
|
||||
Version: 1.1.34
|
||||
Release: 2
|
||||
Release: 7
|
||||
Summary: XSLT Transformation Library
|
||||
License: MIT
|
||||
URL: http://xmlsoft.org/libxslt/
|
||||
Source0: https://github.com/GNOME/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
# PATCH-FIX-UPSTREAM bug-fix https://github.com/GNOME/libxslt/
|
||||
Patch0000: CVE-2015-9019.patch
|
||||
Patch0001: Fix-variable-syntax-in-Python-configuration.patch
|
||||
Patch0002: Fix-clang-Wconditional-uninitialized-warning-in-libx.patch
|
||||
Patch0003: Fix-clang-Wimplicit-int-conversion-warning.patch
|
||||
Patch0004: Fix-implicit-int-conversion-warning-in-exslt-crypto..patch
|
||||
Patch0: CVE-2015-9019.patch
|
||||
Patch1: Fix-variable-syntax-in-Python-configuration.patch
|
||||
Patch2: Fix-clang-Wconditional-uninitialized-warning-in-libx.patch
|
||||
Patch3: Fix-clang-Wimplicit-int-conversion-warning.patch
|
||||
Patch4: Fix-implicit-int-conversion-warning-in-exslt-crypto..patch
|
||||
Patch5: Fix-quadratic-runtime-with-text-and-xsl-message.patch
|
||||
Patch6: Fix-double-free-with-stylesheets-containing-entity-n.patch
|
||||
Patch7: Fix-use-after-free-in-xsltApplyTemplates.patch
|
||||
Patch8: CVE-2024-55549.patch
|
||||
Patch9: CVE-2025-24855.patch
|
||||
|
||||
BuildRequires: gcc make libtool autoconf automake libgcrypt-devel pkgconfig(libxml-2.0) >= 2.6.27
|
||||
|
||||
@ -56,7 +61,7 @@ export PYTHON=/usr/bin/python2
|
||||
pushd $RPM_BUILD_ROOT/%{_includedir}/%{name}; touch -m --reference=xslt.h ../../bin/xslt-config;popd
|
||||
|
||||
%check
|
||||
make check
|
||||
%make_build tests
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
@ -100,6 +105,27 @@ make check
|
||||
%doc python/tests/*.xsl
|
||||
|
||||
%changelog
|
||||
* Thu Mar 13 2025 Funda Wang <fundawang@yeah.net> - 1.1.34-7
|
||||
- fix CVE-2024-55549 CVE-2025-24855
|
||||
|
||||
* Thu Feb 09 2023 fuanan <fuanan3@h-partners.com> - 1.1.34-6
|
||||
- Type:enhancement
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:optimize test command
|
||||
|
||||
* Fri Jul 01 2022 fuanan <fuanan3@h-partners.com> - 1.1.34-5
|
||||
- Type:CVE
|
||||
- ID:CVE-2021-30560
|
||||
- SUG:NA
|
||||
- DESC:fix CVE-2021-30560
|
||||
|
||||
* Sat Oct 23 2021 panxiaohe<panxiaohe@huawei.com> - 1.1.34-4
|
||||
- Fix double-free with stylesheets containing entity nodes
|
||||
|
||||
* Wed Sep 23 2020 yangzhuangzhuang<yangzhuangzhuang1@huawei.com> - 1.1.34-3
|
||||
- Fix the large loop found in xsltApplyStylesheetUser through fuzzing testcase xslt.
|
||||
|
||||
* Tue Jun 23 2020 openEuler xuping<xuping21@huawei.com> - 1.1.34-2
|
||||
- quality enhancement synchronization github patch
|
||||
|
||||
@ -109,7 +135,7 @@ make check
|
||||
* Sat Jan 11 2020 zhangguangzhi<zhanguangzhi3@huawei.com> - 1.1.32-7
|
||||
- del patch to be consistent with open source
|
||||
|
||||
* Mon Dec 31 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.1.32-6
|
||||
* Tue Dec 31 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.1.32-6
|
||||
- fix bug in community files
|
||||
|
||||
* Sat Dec 21 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.1.32-5
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user