Also drop the CVE patches which are already covered by this new release. Compile tested for and run tested on mxs platform. Signed-off-by: Michael Heimpold <mhei@heimpold.de>lilik-openwrt-22.03
@ -1,54 +0,0 @@ | |||
From a436374994c47b12d5de1b8b1d191a098fa23594 Mon Sep 17 00:00:00 2001 | |||
From: Nick Wellnhofer <wellnhofer@aevum.de> | |||
Date: Mon, 30 Jul 2018 12:54:38 +0200 | |||
Subject: [PATCH 12/13] Fix nullptr deref with XPath logic ops | |||
If the XPath stack is corrupted, for example by a misbehaving extension | |||
function, the "and" and "or" XPath operators could dereference NULL | |||
pointers. Check that the XPath stack isn't empty and optimize the | |||
logic operators slightly. | |||
Closes: https://gitlab.gnome.org/GNOME/libxml2/issues/5 | |||
Also see | |||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901817 | |||
https://bugzilla.redhat.com/show_bug.cgi?id=1595985 | |||
This is CVE-2018-14404. | |||
Thanks to Guy Inbar for the report. | |||
--- | |||
xpath.c | 10 ++++------ | |||
1 file changed, 4 insertions(+), 6 deletions(-) | |||
diff --git a/xpath.c b/xpath.c | |||
index 3fae0bf4..5e3bb9ff 100644 | |||
--- a/xpath.c | |||
+++ b/xpath.c | |||
@@ -13297,9 +13297,8 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) | |||
return(0); | |||
} | |||
xmlXPathBooleanFunction(ctxt, 1); | |||
- arg1 = valuePop(ctxt); | |||
- arg1->boolval &= arg2->boolval; | |||
- valuePush(ctxt, arg1); | |||
+ if (ctxt->value != NULL) | |||
+ ctxt->value->boolval &= arg2->boolval; | |||
xmlXPathReleaseObject(ctxt->context, arg2); | |||
return (total); | |||
case XPATH_OP_OR: | |||
@@ -13323,9 +13322,8 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) | |||
return(0); | |||
} | |||
xmlXPathBooleanFunction(ctxt, 1); | |||
- arg1 = valuePop(ctxt); | |||
- arg1->boolval |= arg2->boolval; | |||
- valuePush(ctxt, arg1); | |||
+ if (ctxt->value != NULL) | |||
+ ctxt->value->boolval |= arg2->boolval; | |||
xmlXPathReleaseObject(ctxt->context, arg2); | |||
return (total); | |||
case XPATH_OP_EQUAL: | |||
-- | |||
2.18.0 | |||
@ -1,50 +0,0 @@ | |||
From 2240fbf5912054af025fb6e01e26375100275e74 Mon Sep 17 00:00:00 2001 | |||
From: Nick Wellnhofer <wellnhofer@aevum.de> | |||
Date: Mon, 30 Jul 2018 13:14:11 +0200 | |||
Subject: [PATCH 13/13] Fix infinite loop in LZMA decompression | |||
MIME-Version: 1.0 | |||
Content-Type: text/plain; charset=UTF-8 | |||
Content-Transfer-Encoding: 8bit | |||
Check the liblzma error code more thoroughly to avoid infinite loops. | |||
Closes: https://gitlab.gnome.org/GNOME/libxml2/issues/13 | |||
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=794914 | |||
This is CVE-2018-9251 and CVE-2018-14567. | |||
Thanks to Dongliang Mu and Simon Wörner for the reports. | |||
--- | |||
xzlib.c | 9 +++++++++ | |||
1 file changed, 9 insertions(+) | |||
diff --git a/xzlib.c b/xzlib.c | |||
index a839169e..0ba88cfa 100644 | |||
--- a/xzlib.c | |||
+++ b/xzlib.c | |||
@@ -562,6 +562,10 @@ xz_decomp(xz_statep state) | |||
"internal error: inflate stream corrupt"); | |||
return -1; | |||
} | |||
+ /* | |||
+ * FIXME: Remapping a couple of error codes and falling through | |||
+ * to the LZMA error handling looks fragile. | |||
+ */ | |||
if (ret == Z_MEM_ERROR) | |||
ret = LZMA_MEM_ERROR; | |||
if (ret == Z_DATA_ERROR) | |||
@@ -587,6 +591,11 @@ xz_decomp(xz_statep state) | |||
xz_error(state, LZMA_PROG_ERROR, "compression error"); | |||
return -1; | |||
} | |||
+ if ((state->how != GZIP) && | |||
+ (ret != LZMA_OK) && (ret != LZMA_STREAM_END)) { | |||
+ xz_error(state, ret, "lzma error"); | |||
+ return -1; | |||
+ } | |||
} while (strm->avail_out && ret != LZMA_STREAM_END); | |||
/* update available output and crc check value */ | |||
-- | |||
2.18.0 | |||