diff options
Diffstat (limited to 'meta/recipes-core/libxml/libxml2/CVE-2023-45322-1.patch')
-rw-r--r-- | meta/recipes-core/libxml/libxml2/CVE-2023-45322-1.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/meta/recipes-core/libxml/libxml2/CVE-2023-45322-1.patch b/meta/recipes-core/libxml/libxml2/CVE-2023-45322-1.patch new file mode 100644 index 0000000000..182bb29abd --- /dev/null +++ b/meta/recipes-core/libxml/libxml2/CVE-2023-45322-1.patch | |||
@@ -0,0 +1,50 @@ | |||
1 | From a22bd982bf10291deea8ba0c61bf75b898c604ce Mon Sep 17 00:00:00 2001 | ||
2 | From: Nick Wellnhofer <wellnhofer@aevum.de> | ||
3 | Date: Wed, 2 Nov 2022 15:44:42 +0100 | ||
4 | Subject: [PATCH] malloc-fail: Fix memory leak in xmlStaticCopyNodeList | ||
5 | |||
6 | Found with libFuzzer, see #344. | ||
7 | |||
8 | Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/a22bd982bf10291deea8ba0c61bf75b898c604ce] | ||
9 | |||
10 | Signed-off-by: Peter Marko <peter.marko@siemens.com> | ||
11 | Signed-off-by: Vijay Anusuri <vanusuri@mvista.com> | ||
12 | --- | ||
13 | tree.c | 7 +++++-- | ||
14 | 1 file changed, 5 insertions(+), 2 deletions(-) | ||
15 | |||
16 | diff --git a/tree.c b/tree.c | ||
17 | index 507869efe..647288ce3 100644 | ||
18 | --- a/tree.c | ||
19 | +++ b/tree.c | ||
20 | @@ -4461,7 +4461,7 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) { | ||
21 | } | ||
22 | if (doc->intSubset == NULL) { | ||
23 | q = (xmlNodePtr) xmlCopyDtd( (xmlDtdPtr) node ); | ||
24 | - if (q == NULL) return(NULL); | ||
25 | + if (q == NULL) goto error; | ||
26 | q->doc = doc; | ||
27 | q->parent = parent; | ||
28 | doc->intSubset = (xmlDtdPtr) q; | ||
29 | @@ -4473,7 +4473,7 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) { | ||
30 | } else | ||
31 | #endif /* LIBXML_TREE_ENABLED */ | ||
32 | q = xmlStaticCopyNode(node, doc, parent, 1); | ||
33 | - if (q == NULL) return(NULL); | ||
34 | + if (q == NULL) goto error; | ||
35 | if (ret == NULL) { | ||
36 | q->prev = NULL; | ||
37 | ret = p = q; | ||
38 | @@ -4486,6 +4486,9 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) { | ||
39 | node = node->next; | ||
40 | } | ||
41 | return(ret); | ||
42 | +error: | ||
43 | + xmlFreeNodeList(ret); | ||
44 | + return(NULL); | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | -- | ||
49 | GitLab | ||
50 | |||