diff mbox series

[mickledore] yajl: Fix CVE-2023-33460

Message ID 20230811100406.3490196-1-mingli.yu@windriver.com
State New
Headers show
Series [mickledore] yajl: Fix CVE-2023-33460 | expand

Commit Message

Yu, Mingli Aug. 11, 2023, 10:04 a.m. UTC
From: Mingli Yu <mingli.yu@windriver.com>

Backport 2 patches [1] [2] to fix CVE-2023-33460.

[1] https://github.com/openEuler-BaseService/yajl/commit/3d65cb0c6db4d433e5e42ee7d91d8a04e21337cf
[2] https://github.com/openEuler-BaseService/yajl/commit/23a122eddaa28165a6c219000adcc31ff9a8a698

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
 .../yajl/yajl/CVE-2023-33460_1.patch          | 43 +++++++++++++++++++
 .../yajl/yajl/CVE-2023-33460_2.patch          | 31 +++++++++++++
 meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb   |  5 ++-
 3 files changed, 78 insertions(+), 1 deletion(-)
 create mode 100644 meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_1.patch
 create mode 100644 meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_2.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_1.patch b/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_1.patch
new file mode 100644
index 000000000..c53899112
--- /dev/null
+++ b/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_1.patch
@@ -0,0 +1,43 @@ 
+From 3d65cb0c6db4d433e5e42ee7d91d8a04e21337cf Mon Sep 17 00:00:00 2001
+From: wujing <wujing50@huawei.com>
+Date: Thu, 14 Feb 2019 03:12:30 +0800
+Subject: [PATCH] yajl: fix memory leak problem
+
+reason: fix memory leak problem
+
+CVE: CVE-2023-33460
+
+Upstream-Status: Backport [https://github.com/openEuler-BaseService/yajl/commit/3d65cb0c6db4d433e5e42ee7d91d8a04e21337cf]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/yajl_tree.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/yajl_tree.c b/src/yajl_tree.c
+index 3d357a3..4b3cf2b 100644
+--- a/src/yajl_tree.c
++++ b/src/yajl_tree.c
+@@ -143,7 +143,7 @@ static yajl_val context_pop(context_t *ctx)
+     ctx->stack = stack->next;
+ 
+     v = stack->value;
+-
++    free (stack->key);
+     free (stack);
+ 
+     return (v);
+@@ -444,6 +444,10 @@ yajl_val yajl_tree_parse (const char *input,
+              snprintf(error_buffer, error_buffer_size, "%s", internal_err_str);
+              YA_FREE(&(handle->alloc), internal_err_str);
+         }
++        while(ctx.stack != NULL) {
++             yajl_val v = context_pop(&ctx);
++             yajl_tree_free(v);
++        }
+         yajl_free (handle);
+         return NULL;
+     }
+-- 
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_2.patch b/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_2.patch
new file mode 100644
index 000000000..6e9b119b5
--- /dev/null
+++ b/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460_2.patch
@@ -0,0 +1,31 @@ 
+From 23a122eddaa28165a6c219000adcc31ff9a8a698 Mon Sep 17 00:00:00 2001
+From: "zhang.jiujiu" <282627424@qq.com>
+Date: Tue, 7 Dec 2021 22:37:02 +0800
+Subject: [PATCH] fix memory leaks
+
+CVE: CVE-2023-33460
+
+Upstream-Status: Backport [https://github.com/openEuler-BaseService/yajl/commit/23a122eddaa28165a6c219000adcc31ff9a8a698]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/yajl_tree.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/yajl_tree.c b/src/yajl_tree.c
+index b9e6604..0e7bde9 100644
+--- a/src/yajl_tree.c
++++ b/src/yajl_tree.c
+@@ -456,6 +456,9 @@ yajl_val yajl_tree_parse (const char *input,
+              yajl_tree_free(v);
+         }
+         yajl_free (handle);
++	//If the requested memory is not released in time, it will cause memory leakage
++	if(ctx.root)
++	     yajl_tree_free(ctx.root);
+         return NULL;
+     }
+ 
+-- 
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb b/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
index cf8dbb183..aae3c6f3a 100644
--- a/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
+++ b/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
@@ -8,7 +8,10 @@  HOMEPAGE = "http://lloyd.github.com/yajl/"
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://COPYING;md5=39af6eb42999852bdd3ea00ad120a36d"
 
-SRC_URI = "git://github.com/lloyd/yajl;branch=master;protocol=https"
+SRC_URI = "git://github.com/lloyd/yajl;branch=master;protocol=https \
+           file://CVE-2023-33460_1.patch \
+           file://CVE-2023-33460_2.patch \
+"
 SRCREV = "a0ecdde0c042b9256170f2f8890dd9451a4240aa"
 
 S = "${WORKDIR}/git"