diff options
author | Romain Perier <mrpouet@gentoo.org> | 2009-11-04 21:43:38 +0000 |
---|---|---|
committer | Romain Perier <mrpouet@gentoo.org> | 2009-11-04 21:43:38 +0000 |
commit | 358193ee9d8dbd802486daf51de63c37f47ae266 (patch) | |
tree | 8eb3215cf3fe1b67f7e59743925eaef7dddb67d5 /gnome-base | |
parent | Version bump. Add missing gnome-doc-utils and libnotify dependency, bug #2918... (diff) | |
download | gentoo-2-358193ee9d8dbd802486daf51de63c37f47ae266.tar.gz gentoo-2-358193ee9d8dbd802486daf51de63c37f47ae266.tar.bz2 gentoo-2-358193ee9d8dbd802486daf51de63c37f47ae266.zip |
Do not crash in gconf_entry_set_value() when entry is NULL
(Portage version: 2.2_rc48/cvs/Linux x86_64)
Diffstat (limited to 'gnome-base')
-rw-r--r-- | gnome-base/gconf/ChangeLog | 9 | ||||
-rw-r--r-- | gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch | 18 | ||||
-rw-r--r-- | gnome-base/gconf/gconf-2.28.0-r1.ebuild | 107 |
3 files changed, 133 insertions, 1 deletions
diff --git a/gnome-base/gconf/ChangeLog b/gnome-base/gconf/ChangeLog index a18c027e82a7..46fae421e59e 100644 --- a/gnome-base/gconf/ChangeLog +++ b/gnome-base/gconf/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for gnome-base/gconf # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/ChangeLog,v 1.215 2009/10/29 23:38:50 eva Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/ChangeLog,v 1.216 2009/11/04 21:43:37 mrpouet Exp $ + +*gconf-2.28.0-r1 (04 Nov 2009) + + 04 Nov 2009; Romain Perier <mrpouet@gentoo.org> + +gconf-2.28.0-r1.ebuild, + +files/gconf-2.28.0-entry-set-value-sigsegv.patch: + Do not crash in gconf_entry_set_value() when entry is NULL. *gconf-2.28.0 (29 Oct 2009) diff --git a/gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch b/gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch new file mode 100644 index 000000000000..680b1a159b4a --- /dev/null +++ b/gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch @@ -0,0 +1,18 @@ +From: Romain Perier <mrpouet@gentoo.org> +Date: Wed, 4 Nov 2009 11:58:25 +0100 +Subject: Do not segfault when entry is NULL + +--- + gconf/gconf-value.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +--- a/gconf/gconf-value.c ++++ b/gconf/gconf-value.c +@@ -1609,6 +1609,7 @@ void + gconf_entry_set_value (GConfEntry *entry, + const GConfValue *val) + { ++ g_return_if_fail (entry != NULL); + gconf_entry_set_value_nocopy (entry, + val ? gconf_value_copy (val) : NULL); + } diff --git a/gnome-base/gconf/gconf-2.28.0-r1.ebuild b/gnome-base/gconf/gconf-2.28.0-r1.ebuild new file mode 100644 index 000000000000..93d1f947f9ca --- /dev/null +++ b/gnome-base/gconf/gconf-2.28.0-r1.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/gconf-2.28.0-r1.ebuild,v 1.1 2009/11/04 21:43:37 mrpouet Exp $ + +EAPI="2" + +inherit eutils gnome2 + +MY_PN=GConf +MY_P=${MY_PN}-${PV} +PVP=(${PV//[-\._]/ }) + +DESCRIPTION="Gnome Configuration System and Daemon" +HOMEPAGE="http://www.gnome.org/" +SRC_URI="mirror://gnome/sources/${MY_PN}/${PVP[0]}.${PVP[1]}/${MY_P}.tar.bz2" + +LICENSE="LGPL-2" +SLOT="2" +KEYWORDS="~amd64 ~x86" +IUSE="debug doc ldap policykit" + +RDEPEND=">=dev-libs/glib-2.14 + >=x11-libs/gtk+-2.8.16 + >=dev-libs/dbus-glib-0.74 + >=sys-apps/dbus-1 + >=gnome-base/orbit-2.4 + >=dev-libs/libxml2-2 + ldap? ( net-nds/openldap ) + policykit? ( sys-auth/polkit )" +DEPEND="${RDEPEND} + >=dev-util/intltool-0.35 + >=dev-util/pkgconfig-0.9 + >=dev-util/gtk-doc-am-1.10 + doc? ( >=dev-util/gtk-doc-1 )" + +DOCS="AUTHORS ChangeLog NEWS README TODO" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + G2CONF="${G2CONF} + --enable-gtk + --disable-static + $(use_with ldap openldap) + $(use_enable policykit defaults-service)" + kill_gconf + + # Need host's IDL compiler for cross or native build, bug #262747 + export EXTRA_EMAKE="${EXTRA_EMAKE} ORBIT_IDL=/usr/bin/orbit-idl-2" +} + +src_prepare() { + gnome2_src_prepare + + # Do not start gconfd when installing schemas, fix bug #238276, upstream ? + epatch "${FILESDIR}/${PN}-2.24.0-no-gconfd.patch" + + # Do not crash in gconf_entry_set_value() when entry pointer is NULL + epatch "${FILESDIR}/${P}-entry-set-value-sigsegv.patch" + + # Fix intltoolize broken file, see upstream #577133 + sed "s:'\^\$\$lang\$\$':\^\$\$lang\$\$:g" -i po/Makefile.in.in || die "sed failed" +} + +# Can't run tests, missing script. +#src_test() { +# emake -C tests || die "make tests failed" +# sh "${S}"/tests/runtests.sh || die "running tests failed" +#} + +src_install() { + gnome2_src_install + + keepdir /etc/gconf/gconf.xml.mandatory + keepdir /etc/gconf/gconf.xml.defaults + # Make sure this directory exists, bug #268070, upstream #572027 + keepdir /etc/gconf/gconf.xml.system + + echo 'CONFIG_PROTECT_MASK="/etc/gconf"' > 50gconf + doenvd 50gconf || die "doenv failed" + dodir /root/.gconfd +} + +pkg_preinst() { + kill_gconf +} + +pkg_postinst() { + kill_gconf + + # change the permissions to avoid some gconf bugs + einfo "changing permissions for gconf dirs" + find /etc/gconf/ -type d -exec chmod ugo+rx "{}" \; + + einfo "changing permissions for gconf files" + find /etc/gconf/ -type f -exec chmod ugo+r "{}" \; +} + +kill_gconf() { + # This function will kill all running gconfd-2 that could be causing troubles + if [ -x /usr/bin/gconftool-2 ] + then + /usr/bin/gconftool-2 --shutdown + fi + + return 0 +} |