commit: fc29b9c0f71207121cbf9c93b1f5f131de30b078 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Feb 27 00:58:05 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Feb 27 00:58:40 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc29b9c0
app-misc/gcal: fix crash with _F_S=3, add smoke test * Fix crash with _F_S=3 using upstream patch * Add smoke test to src_test which would've (and does) catch this Closes: https://bugs.gentoo.org/925560 Signed-off-by: Sam James <sam <AT> gentoo.org> app-misc/gcal/files/gcal-4.1-fortify.patch | 21 ++++++++++ app-misc/gcal/gcal-4.1-r2.ebuild | 62 ++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/app-misc/gcal/files/gcal-4.1-fortify.patch b/app-misc/gcal/files/gcal-4.1-fortify.patch new file mode 100644 index 000000000000..bc3b3a693af9 --- /dev/null +++ b/app-misc/gcal/files/gcal-4.1-fortify.patch @@ -0,0 +1,21 @@ +https://bugs.gentoo.org/925560 +https://git.savannah.gnu.org/cgit/gcal.git/commit/?id=a9d49b3e6535ebf2b5a0b4051e95bb5dc0c27fdb + +From a9d49b3e6535ebf2b5a0b4051e95bb5dc0c27fdb Mon Sep 17 00:00:00 2001 +From: Oleg Derevenetz <[email protected]> +Date: Sun, 29 Nov 2020 17:42:07 +0100 +Subject: src/utils.c: fix segfault + +--- a/src/utils.c ++++ b/src/utils.c +@@ -1354,7 +1354,7 @@ month_name (month) + + + len = (int) strlen (s) - 1; +- mayname = (char *) my_malloc (len, ++ mayname = (char *) my_malloc (len + 2, + ERR_NO_MEMORY_AVAILABLE, + __FILE__, ((long) __LINE__) - 2L, + "mayname", 0); +-- +cgit v1.1 diff --git a/app-misc/gcal/gcal-4.1-r2.ebuild b/app-misc/gcal/gcal-4.1-r2.ebuild new file mode 100644 index 000000000000..829867ea2dc9 --- /dev/null +++ b/app-misc/gcal/gcal-4.1-r2.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic toolchain-funcs + +DESCRIPTION="The GNU Calendar - a replacement for cal" +HOMEPAGE="https://www.gnu.org/software/gcal/" +SRC_URI="mirror://gnu/gcal/${P}.tar.xz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="ncurses nls unicode" + +RDEPEND="nls? ( virtual/libintl ) + unicode? ( dev-libs/libunistring:= )" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + nls? ( >=sys-devel/gettext-0.17 ) +" + +DOCS=( BUGS LIMITATIONS NEWS README THANKS TODO ) + +PATCHES=( + "${FILESDIR}/${P}-glibc228.patch" + "${FILESDIR}/${PN}-4.1-configure-clang16.patch" + "${FILESDIR}/${P}-fortify.patch" +) + +src_prepare() { + default + + # Drop once ${PN}-4.1-configure-clang16.patch merged + eautoreconf +} + +src_configure() { + tc-export CC + append-cppflags -D_GNU_SOURCE + + use unicode && append-libs -lunistring + + econf \ + --disable-rpath \ + $(use_enable nls) \ + $(use_enable ncurses term) \ + $(use_enable unicode) +} + +src_test() { + default + + # Do basic smoke tests to help catch issues like bug #925560 + # where trivial 'gcal' invocation crashed w/ _F_S=3. + local bin + for bin in gcal2txt tcal txt2gcal gcal ; do + src/${bin} || die + done +}
