commit:     292d37d5785fef12129973cd07a2f7731303d989
Author:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Sun Jul  9 05:55:48 2023 +0000
Commit:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Sun Jul  9 05:55:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=292d37d5

dev-libs/yajl: update EAPI 7 -> 8, fix memory leak

Bug: https://bugs.gentoo.org/908036
Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>

 dev-libs/yajl/files/yajl-2.1.0-memory-leak.patch | 23 +++++++++++++++
 dev-libs/yajl/yajl-2.1.0-r4.ebuild               | 37 ++++++++++++++++++++++++
 2 files changed, 60 insertions(+)

diff --git a/dev-libs/yajl/files/yajl-2.1.0-memory-leak.patch 
b/dev-libs/yajl/files/yajl-2.1.0-memory-leak.patch
new file mode 100644
index 000000000000..da059c405393
--- /dev/null
+++ b/dev-libs/yajl/files/yajl-2.1.0-memory-leak.patch
@@ -0,0 +1,23 @@
+From 23a122eddaa28165a6c219000adcc31ff9a8a698 Mon Sep 17 00:00:00 2001
+From: "zhang.jiujiu" <[email protected]>
+Date: Tue, 7 Dec 2021 22:37:02 +0800
+Subject: [PATCH] fix memory leaks
+
+---
+ src/yajl_tree.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/yajl_tree.c b/src/yajl_tree.c
+index b9e66043..0e7bde98 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;
+     }
+ 

diff --git a/dev-libs/yajl/yajl-2.1.0-r4.ebuild 
b/dev-libs/yajl/yajl-2.1.0-r4.ebuild
new file mode 100644
index 000000000000..fb59588a03ea
--- /dev/null
+++ b/dev-libs/yajl/yajl-2.1.0-r4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib multibuild
+
+DESCRIPTION="Small event-driven (SAX-style) JSON parser"
+HOMEPAGE="https://lloyd.github.io/yajl/";
+SRC_URI="https://github.com/lloyd/yajl/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/lloyd-yajl-66cb08c"
+
+LICENSE="ISC"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv 
~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE=""
+
+PATCHES=(
+       "${FILESDIR}"/${P}-uclibc.patch # git master 5d4bf525
+       "${FILESDIR}"/${P}-pkg-config.patch # downstream
+       "${FILESDIR}"/${P}-memory-leak.patch # Bug 908036
+)
+
+src_prepare() {
+       cmake_src_prepare
+       multilib_copy_sources
+}
+
+multilib_src_test() {
+       cd "${S}"/test/parsing || die
+       ./run_tests.sh "${BUILD_DIR}"/test/parsing/yajl_test || die
+}
+
+src_install() {
+       cmake-multilib_src_install
+       find "${D}" -name libyajl_s.a -delete || die
+}

Reply via email to