summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <ssuominen@gentoo.org>2012-05-10 07:22:58 +0000
committerSamuli Suominen <ssuominen@gentoo.org>2012-05-10 07:22:58 +0000
commite0b6ba33f334e0365035f39217ac9537adb8fee9 (patch)
tree047dac92fb3f67886127beb7487e20157dd8de96 /app-pda
parentRemove old. (diff)
downloadgentoo-2-e0b6ba33f334e0365035f39217ac9537adb8fee9.tar.gz
gentoo-2-e0b6ba33f334e0365035f39217ac9537adb8fee9.tar.bz2
gentoo-2-e0b6ba33f334e0365035f39217ac9537adb8fee9.zip
Include upstream patch for double free segmentation fault occuring with, for example, directory creation wrt #414753 by "Flavio"
(Portage version: 2.2.0_alpha102/cvs/Linux x86_64)
Diffstat (limited to 'app-pda')
-rw-r--r--app-pda/gtkpod/ChangeLog9
-rw-r--r--app-pda/gtkpod/files/gtkpod-2.1.1-segfault_with_directory_creation.patch38
-rw-r--r--app-pda/gtkpod/gtkpod-2.1.1-r3.ebuild91
3 files changed, 137 insertions, 1 deletions
diff --git a/app-pda/gtkpod/ChangeLog b/app-pda/gtkpod/ChangeLog
index 0560fe3e666e..73ac292604e1 100644
--- a/app-pda/gtkpod/ChangeLog
+++ b/app-pda/gtkpod/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-pda/gtkpod
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-pda/gtkpod/ChangeLog,v 1.101 2012/05/10 05:20:00 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-pda/gtkpod/ChangeLog,v 1.102 2012/05/10 07:22:58 ssuominen Exp $
+
+*gtkpod-2.1.1-r3 (10 May 2012)
+
+ 10 May 2012; Samuli Suominen <ssuominen@gentoo.org> +gtkpod-2.1.1-r3.ebuild,
+ +files/gtkpod-2.1.1-segfault_with_directory_creation.patch:
+ Include upstream patch for double free segmentation fault occuring with, for
+ example, directory creation wrt #414753 by "Flavio"
09 May 2012; Samuli Suominen <ssuominen@gentoo.org> -gtkpod-2.1.1-r1.ebuild,
-files/gtkpod-2.1.1-libmp4v2_so_2.patch:
diff --git a/app-pda/gtkpod/files/gtkpod-2.1.1-segfault_with_directory_creation.patch b/app-pda/gtkpod/files/gtkpod-2.1.1-segfault_with_directory_creation.patch
new file mode 100644
index 000000000000..342f900cabb9
--- /dev/null
+++ b/app-pda/gtkpod/files/gtkpod-2.1.1-segfault_with_directory_creation.patch
@@ -0,0 +1,38 @@
+From d6ae5a468eba1b3b2aaf40ffa5ede6fce4ea7c3a Mon Sep 17 00:00:00 2001
+From: phantomjinx <p.g.richardson@phantomjinx.co.uk>
+Date: Mon, 23 Apr 2012 20:38:15 +0100
+Subject: [PATCH] Fix for double free segfault
+
+* Occurs when adding a directory
+
+* Directory names inserted into hash table, added as both key and value then
+ being freed as key and then freed as value. Second free causing the
+ segfault
+
+Fixes 3477268 (sf.net)
+Fixes FS#92
+---
+ libgtkpod/file.c | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/libgtkpod/file.c b/libgtkpod/file.c
+index 323df96..9ffe885 100644
+--- a/libgtkpod/file.c
++++ b/libgtkpod/file.c
+@@ -422,8 +422,11 @@ static void recurse_directories_internal(gchar *name, GSList **trknames, gboolea
+
+ if (g_hash_table_lookup(*directories_seen, nextfull))
+ continue;
+- else
+- g_hash_table_insert(*directories_seen, nextfull, nextfull);
++ else {
++ // Avoid double freeing when directories_seen is destroyed
++ // by duplicating the nextfull string
++ g_hash_table_insert(*directories_seen, g_strdup(nextfull), g_strdup(nextfull));
++ }
+
+ if (descend || !g_file_test(nextfull, G_FILE_TEST_IS_DIR)) {
+ recurse_directories_internal(nextfull, trknames, descend, directories_seen);
+--
+1.7.4.1
+
diff --git a/app-pda/gtkpod/gtkpod-2.1.1-r3.ebuild b/app-pda/gtkpod/gtkpod-2.1.1-r3.ebuild
new file mode 100644
index 000000000000..93dd273c8fde
--- /dev/null
+++ b/app-pda/gtkpod/gtkpod-2.1.1-r3.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-pda/gtkpod/gtkpod-2.1.1-r3.ebuild,v 1.1 2012/05/10 07:22:58 ssuominen Exp $
+
+EAPI=4
+inherit eutils gnome2-utils
+
+DESCRIPTION="A graphical user interface to the Apple productline"
+HOMEPAGE="http://gtkpod.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2 FDL-1.2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="aac clutter curl flac gstreamer mp3 vorbis webkit"
+
+# libmp4v2.so.1 from SLOT=1 is dlopened but gtkpod has switched to
+# AtomicParsley in git for the upcoming 2.1.2 release
+COMMON_DEPEND="dev-libs/gdl:3
+ >=dev-libs/glib-2.28.5
+ >=dev-libs/libxml2-2.7.7
+ >=dev-util/anjuta-2.91
+ >=media-libs/libgpod-0.7.0
+ >=media-libs/libid3tag-0.15
+ >=x11-libs/gtk+-3.0.8:3
+ aac? (
+ media-libs/faad2
+ || ( media-libs/libmp4v2:1 <=media-libs/libmp4v2-1.9.1:0 )
+ )
+ clutter? ( media-libs/clutter-gtk:1.0 )
+ curl? ( >=net-misc/curl-7.10 )
+ flac? ( media-libs/flac )
+ gstreamer? ( >=media-libs/gst-plugins-base-0.10.25:0.10 )
+ mp3? ( media-sound/lame )
+ vorbis? (
+ media-libs/libvorbis
+ media-sound/vorbis-tools
+ )
+ webkit? ( >=net-libs/webkit-gtk-1.3:3 )"
+RDEPEND="${COMMON_DEPEND}
+ gstreamer? ( media-plugins/gst-plugins-meta:0.10 )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/intltool
+ virtual/pkgconfig
+ sys-devel/flex
+ sys-devel/gettext
+ virtual/os-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-segfault_with_directory_creation.patch #414753
+}
+
+src_configure() {
+ econf \
+ --disable-static \
+ $(use_enable webkit plugin-coverweb) \
+ $(use_enable clutter plugin-clarity) \
+ $(use_enable gstreamer plugin-media-player) \
+ $(use_with curl) \
+ $(use_with vorbis ogg) \
+ $(use_with flac) \
+ $(use_with aac faad)
+}
+
+src_install() {
+ emake \
+ DESTDIR="${D}" \
+ docdir=/usr/share/doc/${PF}/html \
+ figuresdir=/usr/share/doc/${PF}/html/figures \
+ install
+
+ dodoc AUTHORS ChangeLog NEWS README TODO TROUBLESHOOTING
+
+ find "${D}" -name '*.la' -exec rm -f {} +
+ rm -f "${D}"/usr/share/gtkpod/data/{AUTHORS,COPYING}
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}