commit: e45491eff4ab9e829186e4a860bd00db6b2ab856 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Jun 1 03:23:08 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jun 1 03:23:08 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e45491ef
dev-libs/libconfig: drop 1.8.0 Bad release, broke ABI and needed some backports for serious issues. Use 1.8.1. Drop so we don't accidentally stabilise this. Signed-off-by: Sam James <sam <AT> gentoo.org> dev-libs/libconfig/Manifest | 1 - .../libconfig-1.8.0-fix_format_bin_32bit.patch | 32 ------- .../files/libconfig-1.8.0-fix_inv_mem_w.patch | 103 --------------------- dev-libs/libconfig/libconfig-1.8.0.ebuild | 75 --------------- 4 files changed, 211 deletions(-) diff --git a/dev-libs/libconfig/Manifest b/dev-libs/libconfig/Manifest index 8cae7f1ac343..77e91d3019ae 100644 --- a/dev-libs/libconfig/Manifest +++ b/dev-libs/libconfig/Manifest @@ -1,3 +1,2 @@ DIST libconfig-1.7.3.tar.gz 3026416 BLAKE2B 94301be4d6e472fc9daeac7a04074855737ddda94bb5748cd0087fafe192cf674ea1c020808ebf855372188b6b27a57ed185323fa26988bb1fccde0566617cba SHA512 3749bf9eb29bab0f6b14f4fc759f0c419ed27a843842aaabed1ec1fbe0faa8c93322ff875ca1291d69cb28a39ece86d512aec42c2140d566c38c56dc616734f4 -DIST libconfig-1.8.0.tar.gz 1722355 BLAKE2B 3879fa62277332f9df07c3776d11e6ec6c7518fe83c83a6b50b15683a34d9d57f54bb550f911076654b0f62c40fa650167d8a233e01f05be0c5b5dcc9fc8749b SHA512 7899d3898e1741d90cf2381561b172ec6ba2bcc47d1b3e6058bcef74d73634d9be33eb8f99a58c7af15ac99e56800510edf3c412d9c1f136e6a3ab744455b992 DIST libconfig-1.8.1.tar.gz 1726710 BLAKE2B 96e6da09e8efdd6091edfe58cbc860296e6c484257ea95df95eea3c103fc03a46159136483d35ac4bf25ab6284d8284a1bd988d8499eb057d6226ac4ae7e950a SHA512 1d9d7b21baf73259c09b503ca02942bdf847741378f8c3d7e138c9b4979c5304aae510595958fe1842b726778cedf2aaeb1844f8b209a61ccb24debea592bd0c diff --git a/dev-libs/libconfig/files/libconfig-1.8.0-fix_format_bin_32bit.patch b/dev-libs/libconfig/files/libconfig-1.8.0-fix_format_bin_32bit.patch deleted file mode 100644 index 0af33d7fb324..000000000000 --- a/dev-libs/libconfig/files/libconfig-1.8.0-fix_format_bin_32bit.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://github.com/hyperrealm/libconfig/pull/260 -From b90c45a18110fcca415d00a98ff79c908c42544b Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich <[email protected]> -Date: Thu, 1 May 2025 20:58:26 +0100 -Subject: [PATCH] libconfig_format_bin: fix on 32-bit systems - -Before the change conversion of bin produced wrong -leading zeros and failed test son `i686-linux` as: - - [TEST] BinaryAndHex - files "temp.cfg" and "./testdata/binhex.cfg" differ starting at line 5, char 12 - tests.c:55: failed assert: ("temp.cfg") ["temp.cfg"] ==txtfile (output_file) ["./testdata/binhex.cfg"] - [FAIL] BinaryAndHex - -Closes: https://github.com/hyperrealm/libconfig/issues/259 ---- - lib/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/util.c b/lib/util.c -index 5455cac..cf73766 100644 ---- a/lib/util.c -+++ b/lib/util.c -@@ -286,7 +286,7 @@ void libconfig_format_double(double val, int precision, int sci_ok, char *buf, - /* ------------------------------------------------------------------------- */ - - #ifdef __GNUC__ --#define clzl(x) __builtin_clzl(x) -+#define clzl(x) __builtin_clzll(x) - #else - static int clzl(int64_t val) - { diff --git a/dev-libs/libconfig/files/libconfig-1.8.0-fix_inv_mem_w.patch b/dev-libs/libconfig/files/libconfig-1.8.0-fix_inv_mem_w.patch deleted file mode 100644 index aee117ca9e3b..000000000000 --- a/dev-libs/libconfig/files/libconfig-1.8.0-fix_inv_mem_w.patch +++ /dev/null @@ -1,103 +0,0 @@ -https://github.com/hyperrealm/libconfig/pull/261 -From f55523ab4722b216349d909bf770f7a84b4f4c67 Mon Sep 17 00:00:00 2001 -From: Shubham Tiwari <[email protected]> -Date: Sun, 4 May 2025 17:39:52 +0530 -Subject: [PATCH] Fix invalid memory write - ---- - fuzz/fuzz_config_read.c | 60 ++++++++++++++++++----------------------- - 1 file changed, 26 insertions(+), 34 deletions(-) - -diff --git a/fuzz/fuzz_config_read.c b/fuzz/fuzz_config_read.c -index 38138dd..02adb0b 100644 ---- a/fuzz/fuzz_config_read.c -+++ b/fuzz/fuzz_config_read.c -@@ -93,49 +93,36 @@ size_t LLVMFuzzerCustomMutator(uint8_t *data, size_t size, - srand(seed); - config_init(&cfg); - -- fuzz_data_t *fuzz_data = (fuzz_data_t *) data; -- -- // Ensure MIN_BUFF_SIZE * 2 <= size <= MAX_BUFF_SIZE -- if (remaining_size < MIN_BUFF_SIZE) -- { -- return 2 * MIN_BUFF_SIZE; -- } -- if (remaining_size > MAX_BUFF_SIZE) -- { -- return MAX_BUFF_SIZE; -+ if (size < MIN_BUFF_SIZE || max_size < MIN_BUFF_SIZE || max_size > MAX_BUFF_SIZE) { -+ return MIN_BUFF_SIZE; - } - -- remaining_size -= MIN_BUFF_SIZE; -+ fuzz_data_t *fuzz_data = (fuzz_data_t *) data; -+ remaining_size -= sizeof(fuzz_data_t); - -- fuzz_data->lookup_type = rand() % (CONFIG_TYPE_LIST + 1); -+ // Limit sizes to avoid overflow -+ size_t max_content = min_size(remaining_size, MAX_CONFIG_SIZE - 1); -+ fuzz_data->content_size = rand() % max_content; - -- // Ensure the content and path sizes are within bounds -- if (fuzz_data->content_size + fuzz_data->path_size > remaining_size) -- { -- fuzz_data->content_size = rand() % remaining_size; -- fuzz_data->path_size = remaining_size - fuzz_data->content_size; -+ size_t max_path = min_size(remaining_size - fuzz_data->content_size, MAX_PATH_SIZE - 1); -+ fuzz_data->path_size = rand() % max_path; -+ -+ if (fuzz_data->content_size + fuzz_data->path_size + sizeof(fuzz_data_t) >= max_size) { -+ fuzz_data->content_size = max_content / 2; -+ fuzz_data->path_size = max_path / 2; - } - -- // Extract and mutate the config - fuzz_data_content(fuzz_data, &config_data); -- fuzz_data->content_size = LLVMFuzzerMutate(config_data, fuzz_data->content_size, remaining_size); -- config_data[fuzz_data->content_size] = '\0'; // Null-terminate the config -+ fuzz_data_path(fuzz_data, &path_data); - -- if (fuzz_data->content_size > remaining_size) { -- return 0; -- } -+ // Mutate content and path safely -+ fuzz_data->content_size = LLVMFuzzerMutate(config_data, fuzz_data->content_size, max_content); -+ config_data[fuzz_data->content_size < max_content ? fuzz_data->content_size : max_content - 1] = '\0'; - -- remaining_size -= fuzz_data->content_size; -+ fuzz_data->path_size = LLVMFuzzerMutate(path_data, fuzz_data->path_size, max_path); -+ path_data[fuzz_data->path_size < max_path ? fuzz_data->path_size : max_path - 1] = '\0'; - -- // Extract and mutate the path -- fuzz_data->path_size = min_size(fuzz_data->path_size, remaining_size); -- fuzz_data_path(fuzz_data, &path_data); -- if (remaining_size > 0) { -- fuzz_data->path_size = LLVMFuzzerMutate(path_data, fuzz_data->path_size, remaining_size); -- } -- path_data[fuzz_data->path_size] = '\0'; // Null-terminate the path -- -- return min_size(MIN_BUFF_SIZE + fuzz_data->content_size + fuzz_data->path_size, max_size); -+ return sizeof(fuzz_data_t) + fuzz_data->content_size + fuzz_data->path_size + 2; - } - - int LLVMFuzzerTestOneInput(const uint8_t *data, const size_t size) -@@ -169,6 +156,11 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, const size_t size) - - config_init(&cfg); - -+ if (fuzz_data->content_size > MAX_CONFIG_SIZE || -+ fuzz_data->path_size > MAX_PATH_SIZE || -+ sizeof(fuzz_data_t) + fuzz_data->content_size + fuzz_data->path_size > size) { -+ goto end; -+ } - fuzz_data_content(fuzz_data, &config_ptr); - fuzz_data_path(fuzz_data, &path_ptr); - const char *config_data = (const char *) config_ptr; -@@ -243,4 +235,4 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, const size_t size) - end: - config_destroy(&cfg); - return rc; --} -\ No newline at end of file -+} diff --git a/dev-libs/libconfig/libconfig-1.8.0.ebuild b/dev-libs/libconfig/libconfig-1.8.0.ebuild deleted file mode 100644 index f6bd444b8d1b..000000000000 --- a/dev-libs/libconfig/libconfig-1.8.0.ebuild +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PV=1.8 # Release "1.8.0" tagged as "1.8" - -inherit autotools dot-a multilib-minimal - -DESCRIPTION="Libconfig is a simple library for manipulating structured configuration files" -HOMEPAGE=" - https://www.hyperrealm.com/libconfig/libconfig.html - https://github.com/hyperrealm/libconfig -" -SRC_URI="https://github.com/hyperrealm/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="LGPL-2.1" -# XXX: Drop .1 w/ >1.8.0, as that should change SONAME again -SLOT="0/11.1" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" -IUSE="+cxx static-libs test" -RESTRICT="!test? ( test )" - -DEPEND=" - sys-apps/texinfo - app-alternatives/yacc - dev-build/libtool -" - -PATCHES=( - # Fix tests on 32bits. Merged upstream - # https://github.com/hyperrealm/libconfig/pull/260 - "${FILESDIR}"/${P}-fix_format_bin_32bit.patch - # Fix mem corruption. Merged upstream - # https://github.com/hyperrealm/libconfig/pull/261 - "${FILESDIR}"/${P}-fix_inv_mem_w.patch -) - -src_prepare() { - default - - sed -i \ - -e '/sleep 3/d' \ - configure.ac || die - - eautoreconf - multilib_copy_sources -} - -multilib_src_configure() { - use static-libs && lto-guarantee-fat - - local myeconfargs=( - $(use_enable cxx) - $(use_enable static-libs static) - $(use_enable test tests) - --disable-examples - ) - - econf "${myeconfargs[@]}" -} - -multilib_src_test() { - # It responds to check but that does not work as intended - emake test -} - -multilib_src_install() { - default - - find "${ED}" -name '*.la' -delete || die - - strip-lto-bytecode -}
