From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5ECE715802F for ; Sat, 4 Mar 2023 07:19:01 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2D2AFE0986; Sat, 4 Mar 2023 07:18:58 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id EBB05E097A for ; Sat, 4 Mar 2023 07:18:57 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2B6CE34124D for ; Sat, 4 Mar 2023 07:18:57 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D53248E1 for ; Sat, 4 Mar 2023 07:18:53 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1677914295.ee4985333e42e9794fb0f165a857e78af0f363d5.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: net-p2p/rtorrent/files/, net-p2p/rtorrent/ X-VCS-Repository: repo/gentoo X-VCS-Files: net-p2p/rtorrent/files/rtorrent-0.9.8-bgo891995.patch net-p2p/rtorrent/rtorrent-0.9.8-r2.ebuild X-VCS-Directories: net-p2p/rtorrent/ net-p2p/rtorrent/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: ee4985333e42e9794fb0f165a857e78af0f363d5 X-VCS-Branch: master Date: Sat, 4 Mar 2023 07:18:53 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: fa3149a1-d425-4229-afeb-da729121bfe2 X-Archives-Hash: 0f9363e3b564e21987992be77af8180b commit: ee4985333e42e9794fb0f165a857e78af0f363d5 Author: Stephen Shkardoon ss23 geek nz> AuthorDate: Mon Feb 27 15:34:06 2023 +0000 Commit: Sam James gentoo org> CommitDate: Sat Mar 4 07:18:15 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee498533 net-p2p/rtorrent: Resolve overflow issue on hardened build Closes: https://bugs.gentoo.org/891995 Signed-off-by: Stephen Shkardoon ss23.geek.nz> Closes: https://github.com/gentoo/gentoo/pull/29834 Signed-off-by: Sam James gentoo.org> .../rtorrent/files/rtorrent-0.9.8-bgo891995.patch | 27 ++++++++ net-p2p/rtorrent/rtorrent-0.9.8-r2.ebuild | 74 ++++++++++++++++++++++ 2 files changed, 101 insertions(+) diff --git a/net-p2p/rtorrent/files/rtorrent-0.9.8-bgo891995.patch b/net-p2p/rtorrent/files/rtorrent-0.9.8-bgo891995.patch new file mode 100644 index 000000000000..943fe64dddc1 --- /dev/null +++ b/net-p2p/rtorrent/files/rtorrent-0.9.8-bgo891995.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/891995 +https://github.com/rakshasa/rtorrent/issues/1205 +https://github.com/rakshasa/rtorrent/pull/1169 + +From 812bba81bc049a5f786282b3654cab294b0ef236 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Mon, 20 Jun 2022 19:09:57 +1000 +Subject: [PATCH] utils: lockfile: avoid stack overflow for lockfile buffer + +There appears to have been some change on openSUSE (likely some new +hardening flags for builds, or some glibc hardening) such that incorrect +buffer handling results in a segfault even if the buffer is never +overflowed. + +Signed-off-by: Aleksa Sarai +--- a/src/utils/lockfile.cc ++++ b/src/utils/lockfile.cc +@@ -98,7 +98,8 @@ Lockfile::try_lock() { + int pos = ::gethostname(buf, 255); + + if (pos == 0) { +- ::snprintf(buf + std::strlen(buf), 255, ":+%i\n", ::getpid()); ++ ssize_t len = std::strlen(buf); ++ ::snprintf(buf + len, 255 - len, ":+%i\n", ::getpid()); + int __UNUSED result = ::write(fd, buf, std::strlen(buf)); + } + diff --git a/net-p2p/rtorrent/rtorrent-0.9.8-r2.ebuild b/net-p2p/rtorrent/rtorrent-0.9.8-r2.ebuild new file mode 100644 index 000000000000..b3161479593e --- /dev/null +++ b/net-p2p/rtorrent/rtorrent-0.9.8-r2.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools linux-info systemd + +DESCRIPTION="BitTorrent Client using libtorrent" +HOMEPAGE="https://rakshasa.github.io/rtorrent/" +SRC_URI="http://rtorrent.net/downloads/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris" +IUSE="debug selinux test xmlrpc" +RESTRICT="!test? ( test )" + +COMMON_DEPEND="~net-libs/libtorrent-0.13.${PV##*.} + >=net-misc/curl-7.19.1 + sys-libs/ncurses:0= + xmlrpc? ( dev-libs/xmlrpc-c:= )" +RDEPEND="${COMMON_DEPEND} + selinux? ( sec-policy/selinux-rtorrent ) +" +DEPEND="${COMMON_DEPEND} + dev-util/cppunit + virtual/pkgconfig" + +DOCS=( doc/rtorrent.rc ) + +PATCHES=( + "${FILESDIR}/${P}-bgo891995.patch" +) + +pkg_setup() { + if ! linux_config_exists || ! linux_chkconfig_present IPV6; then + ewarn "rtorrent will not start without IPv6 support in your kernel" + ewarn "without further configuration. Please set bind=0.0.0.0 or" + ewarn "similar in your rtorrent.rc" + ewarn "Upstream bug: https://github.com/rakshasa/rtorrent/issues/732" + fi +} + +src_prepare() { + default + + # https://github.com/rakshasa/rtorrent/issues/332 + cp "${FILESDIR}"/rtorrent.1 "${S}"/doc/ || die + + if [[ ${CHOST} != *-darwin* ]]; then + # syslibroot is only for macos, change to sysroot for others + sed -i 's/Wl,-syslibroot,/Wl,--sysroot,/' "${S}/scripts/common.m4" || die + fi + + eautoreconf +} + +src_configure() { + default + + # configure needs bash or script bombs out on some null shift, bug #291229 + CONFIG_SHELL=${BASH} econf \ + $(use_enable debug) \ + $(use_with xmlrpc xmlrpc-c) +} + +src_install() { + default + doman doc/rtorrent.1 + + newinitd "${FILESDIR}/rtorrent-r1.init" rtorrent + newconfd "${FILESDIR}/rtorrentd.conf" rtorrent + systemd_newunit "${FILESDIR}/rtorrentd_at-r1.service" "rtorrentd@.service" +}