summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-04-11 03:43:08 +0100
committerSam James <sam@gentoo.org>2023-04-11 03:44:41 +0100
commit9ca63fb29f80c52ea7863d1b418e7c36abd6166f (patch)
treed34c2ad3f519e7e65a01ca11ce6a704a2cd99036 /app-editors/pluma
parentmedia-gfx/xdot: Bump to EAPI=8 (diff)
downloadgentoo-9ca63fb29f80c52ea7863d1b418e7c36abd6166f.tar.gz
gentoo-9ca63fb29f80c52ea7863d1b418e7c36abd6166f.tar.bz2
gentoo-9ca63fb29f80c52ea7863d1b418e7c36abd6166f.zip
app-editors/pluma: fix crash w/ FORTIFY_SOURCE=3
Closes: https://bugs.gentoo.org/903860 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-editors/pluma')
-rw-r--r--app-editors/pluma/files/pluma-1.26.0-fortify-source-3.patch24
-rw-r--r--app-editors/pluma/pluma-1.26.0-r1.ebuild83
2 files changed, 107 insertions, 0 deletions
diff --git a/app-editors/pluma/files/pluma-1.26.0-fortify-source-3.patch b/app-editors/pluma/files/pluma-1.26.0-fortify-source-3.patch
new file mode 100644
index 000000000000..001d88081ce6
--- /dev/null
+++ b/app-editors/pluma/files/pluma-1.26.0-fortify-source-3.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/903860
+https://github.com/mate-desktop/pluma/issues/664
+https://github.com/mate-desktop/pluma/pull/665
+https://github.com/mate-desktop/pluma/commit/8ca37beb259f7a62fef2005e888248ec880e44cd
+
+From 8ca37beb259f7a62fef2005e888248ec880e44cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bal=C3=A1zs=20Dura-Kov=C3=A1cs?= <balping314@gmail.com>
+Date: Thu, 18 Aug 2022 17:44:41 +0200
+Subject: [PATCH] Fix out-of-bounds write
+
+Closes https://github.com/mate-desktop/pluma/issues/664
+
+The size of tempfont was one byte too short, so strcpy performed an out-of-bounds write of the terminating 0.
+--- a/pluma/pluma-window.c
++++ b/pluma/pluma-window.c
+@@ -318,7 +318,7 @@ pluma_window_key_press_event (GtkWidget *widget,
+ g_strcanon (tempsize, "1234567890", '\0');
+ g_strreverse (tempsize);
+
+- gchar tempfont [strlen (font)];
++ gchar tempfont [strlen (font) + 1];
+ strcpy (tempfont, font);
+ tempfont [strlen (font) - strlen (tempsize)] = 0;
+
diff --git a/app-editors/pluma/pluma-1.26.0-r1.ebuild b/app-editors/pluma/pluma-1.26.0-r1.ebuild
new file mode 100644
index 000000000000..99286d9f6e29
--- /dev/null
+++ b/app-editors/pluma/pluma-1.26.0-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MATE_LA_PUNT="yes"
+PYTHON_COMPAT=( python3_{9..11} )
+inherit mate python-single-r1 virtualx
+
+DESCRIPTION="Pluma text editor for the MATE desktop"
+
+LICENSE="FDL-1.1+ GPL-2+ LGPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+IUSE="+introspection spell test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+ dev-libs/atk
+ >=dev-libs/glib-2.50:2
+ >=dev-libs/libpeas-1.2.0[gtk]
+ >=dev-libs/libxml2-2.5:2
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-3.22:3[introspection?]
+ >=x11-libs/gtksourceview-4.0.2:4
+ x11-libs/libICE
+ x11-libs/libX11
+ >=x11-libs/libSM-1.0
+ x11-libs/pango
+ introspection? ( >=dev-libs/gobject-introspection-0.9.3:= )
+ spell? (
+ >=app-text/enchant-1.6:=
+ >=app-text/iso-codes-0.35
+ )
+ !!app-editors/mate-text-editor
+"
+RDEPEND="${COMMON_DEPEND}
+ ${PYTHON_DEPS}
+ >=mate-base/mate-desktop-1.9[introspection?]
+ virtual/libintl
+"
+DEPEND="${COMMON_DEPEND}
+ ~app-text/docbook-xml-dtd-4.1.2
+ app-text/yelp-tools
+ dev-util/glib-utils
+ dev-util/gtk-doc
+ dev-util/gtk-doc-am
+ >=sys-devel/libtool-2.2.6:2
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+"
+
+MATE_FORCE_AUTORECONF=true
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fortify-source-3.patch
+)
+
+src_prepare() {
+ # Test require gvfs sftp fs mounted and schema's installed. Skip this one.
+ # https://github.com/mate-desktop/mate-text-editor/issues/33
+ sed -e '/+= document-saver/d' -i tests/Makefile.am || die
+
+ mate_src_prepare
+}
+
+src_configure() {
+ mate_src_configure \
+ $(use_enable introspection) \
+ $(use_enable spell) \
+ $(use_enable test tests)
+}
+
+src_test() {
+ # FIXME: This should be handled at eclass level.
+ "${EPREFIX}/${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/data" || die
+
+ unset DBUS_SESSION_BUS_ADDRESS
+ local -x GSETTINGS_SCHEMA_DIR="${S}/data"
+ virtx emake check
+}