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 +}
