commit:     814edc7a6629c2243d94ed9147d8cfc76e7da2e5
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  2 18:07:17 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Jun  2 18:09:27 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=814edc7a

games-board/gtkboard: EAPI-7 bump, drop IUSE=gnome, libgnomeui--

- Fix stack smashing bug
- Missing || die
- Use desktop.eclass instead of eutils.eclass
- Use HTML_DOCS for index.html doc

Debian-bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=948527
Closes: https://bugs.gentoo.org/644324
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/gtkboard-0.11_pre0-stack-smash.patch     | 32 +++++++++++++
 games-board/gtkboard/gtkboard-0.11_pre0-r2.ebuild  | 53 ++++++++++++++++++++++
 2 files changed, 85 insertions(+)

diff --git a/games-board/gtkboard/files/gtkboard-0.11_pre0-stack-smash.patch 
b/games-board/gtkboard/files/gtkboard-0.11_pre0-stack-smash.patch
new file mode 100644
index 00000000000..412412eb62a
--- /dev/null
+++ b/games-board/gtkboard/files/gtkboard-0.11_pre0-stack-smash.patch
@@ -0,0 +1,32 @@
+From: Takahide Nojima <[email protected]>
+Date: Mon, 6 Jan 2020 02:01:42 +0900
+Subject: fixed-stack-smash
+
+Fix stack overflow in engine.c.
+It has 2 overflows.
+  -The 'linebuf' have 4096 bytes,but '\0' puts in 4097th.
+  -The last argument of g_io_channel_read should be
+   'unsigned long' not 'int'.
+
+See https://bugs.debian.org/948527
+---
+ src/engine.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/engine.c b/src/engine.c
+index 1b733fb..6ad3b9a 100644
+--- a/src/engine.c
++++ b/src/engine.c
+@@ -345,10 +345,10 @@ static gboolean process_line ()
+ 
+ static gboolean channel_process_input ()
+ {
+-      static char linebuf[4096];
++      static char linebuf[4096+1];
+       char *linep = linebuf;
+       char *line;
+-      int bytes_read;
++      gsize bytes_read;
+ #if GLIB_MAJOR_VERSION > 1
+       // we need to call this again because we will get new events before 
returning
+       // from this function

diff --git a/games-board/gtkboard/gtkboard-0.11_pre0-r2.ebuild 
b/games-board/gtkboard/gtkboard-0.11_pre0-r2.ebuild
new file mode 100644
index 00000000000..2886f2c69ad
--- /dev/null
+++ b/games-board/gtkboard/gtkboard-0.11_pre0-r2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_P=${P/_}
+inherit desktop
+
+DESCRIPTION="Board games system"
+HOMEPAGE="http://gtkboard.sourceforge.net/indexold.html";
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+BDEPEND="
+       virtual/pkgconfig"
+RDEPEND="
+       media-libs/libsdl:0[sound]
+       media-libs/sdl-mixer[vorbis]
+       x11-libs/gtk+:2"
+DEPEND="${RDEPEND}"
+
+HTML_DOCS=( doc/index.html )
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-gcc41.patch
+       "${FILESDIR}"/${P}-gcc45.patch
+       "${FILESDIR}"/${P}-stack-smash.patch
+)
+
+src_prepare() {
+       default
+
+       sed -i -e "/^LIBS/s:@LIBS@:@LIBS@ -lgmodule-2.0 -lm:" src/Makefile.in 
|| die
+}
+
+src_configure() {
+       econf \
+               --enable-gtk2 \
+               --enable-sdl \
+               --disable-gnome
+}
+
+src_install() {
+       default
+       doicon pixmaps/${PN}.png
+       make_desktop_entry ${PN} Gtkboard
+}

Reply via email to