summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dartiguelongue <eva@gentoo.org>2010-09-09 23:09:05 +0000
committerGilles Dartiguelongue <eva@gentoo.org>2010-09-09 23:09:05 +0000
commitf382097ac71b33ec9c07fe1c7ba0bb301998322b (patch)
treeec66e2fd7f8355fe0057ce49ac9ff3528b4bbdfb /sys-apps/dbus
parentAdd new package. Ebuild by Dennis Schridde (diff)
downloadgentoo-2-f382097ac71b33ec9c07fe1c7ba0bb301998322b.tar.gz
gentoo-2-f382097ac71b33ec9c07fe1c7ba0bb301998322b.tar.bz2
gentoo-2-f382097ac71b33ec9c07fe1c7ba0bb301998322b.zip
Apply thread safety patch from master, bug #336588. Sync dbus-1.2 with 1.3 ebuild enhancements. Clean up old revision.
(Portage version: 2.2_rc78/cvs/Linux x86_64)
Diffstat (limited to 'sys-apps/dbus')
-rw-r--r--sys-apps/dbus/ChangeLog12
-rw-r--r--sys-apps/dbus/dbus-1.2.24-r2.ebuild169
-rw-r--r--sys-apps/dbus/dbus-1.2.3-r1.ebuild125
-rw-r--r--sys-apps/dbus/dbus-1.3.0-r3.ebuild178
-rw-r--r--sys-apps/dbus/files/dbus-1.2.3-bsd.patch50
-rw-r--r--sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch32
6 files changed, 358 insertions, 208 deletions
diff --git a/sys-apps/dbus/ChangeLog b/sys-apps/dbus/ChangeLog
index 64ea8ceb6cd3..f47af2c9bc96 100644
--- a/sys-apps/dbus/ChangeLog
+++ b/sys-apps/dbus/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for sys-apps/dbus
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.257 2010/08/05 19:54:03 lack Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.258 2010/09/09 23:09:05 eva Exp $
+
+*dbus-1.3.0-r3 (09 Sep 2010)
+*dbus-1.2.24-r2 (09 Sep 2010)
+
+ 09 Sep 2010; Gilles Dartiguelongue <eva@gentoo.org> -dbus-1.2.3-r1.ebuild,
+ -files/dbus-1.2.3-bsd.patch,
+ -files/dbus-1.2.3-panic-from-dbus_signature_validate.patch,
+ +dbus-1.2.24-r2.ebuild, +dbus-1.3.0-r3.ebuild:
+ Apply thread safety patch from master, bug #336588. Sync dbus-1.2 with 1.3
+ ebuild enhancements. Clean up old revision.
*dbus-1.3.0-r2 (05 Aug 2010)
*dbus-1.2.24-r1 (05 Aug 2010)
diff --git a/sys-apps/dbus/dbus-1.2.24-r2.ebuild b/sys-apps/dbus/dbus-1.2.24-r2.ebuild
new file mode 100644
index 000000000000..f6f3d3ef6c4d
--- /dev/null
+++ b/sys-apps/dbus/dbus-1.2.24-r2.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.2.24-r2.ebuild,v 1.1 2010/09/09 23:09:05 eva Exp $
+
+EAPI="2"
+
+inherit eutils multilib flag-o-matic
+
+DESCRIPTION="A message bus system, a simple way for applications to talk to each other"
+HOMEPAGE="http://dbus.freedesktop.org/"
+SRC_URI="http://dbus.freedesktop.org/releases/dbus/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 AFL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="debug doc selinux test X"
+
+RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 )
+ selinux? ( sys-libs/libselinux
+ sec-policy/selinux-dbus )
+ >=dev-libs/expat-1.95.8
+ !<sys-apps/dbus-0.91"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ doc? (
+ app-doc/doxygen
+ app-text/xmlto
+ app-text/docbook-xml-dtd:4.1.2 )"
+
+# out of sources build directory
+BD=${WORKDIR}/${P}-build
+# out of sources build dir for make check
+TBD=${WORKDIR}/${P}-tests-build
+
+pkg_setup() {
+ enewgroup messagebus
+ enewuser messagebus -1 "-1" -1 messagebus
+}
+
+src_prepare() {
+ # Tests were restricted because of this
+ sed -e 's/.*bus_dispatch_test.*/printf ("Disabled due to excess noise\\n");/' \
+ -e '/"dispatch"/d' -i "${S}/bus/test-main.c" || die "sed failed"
+
+ # Thread safety patch, upstream #17754
+ epatch "${FILESDIR}/${PN}-1.2.24-thread-safety.patch"
+}
+
+src_configure() {
+ local my_conf
+
+ # so we can get backtraces from apps
+ append-flags -rdynamic
+
+ # libaudit is *only* used in DBus wrt SELinux support, so disable it, if
+ # not on an SELinux profile.
+ my_conf="$(use_with X x)
+ $(use_enable debug verbose-mode)
+ $(use_enable debug asserts)
+ $(use_enable kernel_linux inotify)
+ $(use_enable kernel_FreeBSD kqueue)
+ $(use_enable selinux)
+ $(use_enable selinux libaudit)
+ --with-xml=expat
+ --with-system-pid-file=/var/run/dbus.pid
+ --with-system-socket=/var/run/dbus/system_bus_socket
+ --with-session-socket-dir=/tmp
+ --with-dbus-user=messagebus
+ --localstatedir=/var"
+
+ mkdir "${BD}"
+ cd "${BD}"
+ einfo "Running configure in ${BD}"
+ ECONF_SOURCE="${S}" econf ${my_conf} \
+ $(use_enable doc doxygen-docs) \
+ $(use_enable doc xml-docs)
+
+ if use test; then
+ mkdir "${TBD}"
+ cd "${TBD}"
+ einfo "Running configure in ${TBD}"
+ ECONF_SOURCE="${S}" econf \
+ ${my_conf} \
+ $(use_enable test checks) \
+ $(use_enable test tests) \
+ $(use_enable test asserts)
+ fi
+}
+
+src_compile() {
+ # after the compile, it uses a selinuxfs interface to
+ # check if the SELinux policy has the right support
+ use selinux && addwrite /selinux/access
+
+ cd "${BD}"
+ einfo "Running make in ${BD}"
+ emake || die "make failed"
+
+ if use doc; then
+ einfo "Building API documentation..."
+ doxygen || die "doxygen failed"
+ fi
+
+ if use test; then
+ cd "${TBD}"
+ einfo "Running make in ${TBD}"
+ emake || die "make failed"
+ fi
+}
+
+src_test() {
+ cd "${TBD}"
+ DBUS_VERBOSE=1 make check || die "make check failed"
+}
+
+src_install() {
+ # initscript
+ newinitd "${FILESDIR}"/dbus.init-1.0 dbus || die "newinitd failed"
+
+ if use X ; then
+ # dbus X session script (#77504)
+ # turns out to only work for GDM (and startx). has been merged into
+ # other desktop (kdm and such scripts)
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}"/80-dbus || die "doexe failed"
+ fi
+
+ # needs to exist for the system socket
+ keepdir /var/run/dbus
+ # needs to exist for machine id
+ keepdir /var/lib/dbus
+ # needs to exist for dbus sessions to launch
+
+ keepdir /usr/lib/dbus-1.0/services
+ keepdir /usr/share/dbus-1/services
+ keepdir /etc/dbus-1/system.d/
+ keepdir /etc/dbus-1/session.d/
+
+ dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO || die "dodoc failed"
+
+ cd "${BD}"
+ # FIXME: split dtd's in dbus-dtd ebuild
+ emake DESTDIR="${D}" install || die "make install failed"
+ if use doc; then
+ dohtml doc/*.html doc/api/html/* || die "dohtml failed"
+ fi
+}
+
+pkg_postinst() {
+ elog "To start the D-Bus system-wide messagebus by default"
+ elog "you should add it to the default runlevel :"
+ elog "\`rc-update add dbus default\`"
+ elog
+ elog "Some applications require a session bus in addition to the system"
+ elog "bus. Please see \`man dbus-launch\` for more information."
+ elog
+ ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run"
+ ewarn "the new version of the daemon."
+
+ if has_version x11-base/xorg-server[hal]; then
+ elog
+ ewarn "You are currently running X with the hal useflag enabled"
+ ewarn "restarting the dbus service WILL restart X as well"
+ ebeep 5
+ fi
+
+ # Ensure unique id is generated
+ dbus-uuidgen --ensure="${ROOT}"/var/lib/dbus/machine-id
+}
diff --git a/sys-apps/dbus/dbus-1.2.3-r1.ebuild b/sys-apps/dbus/dbus-1.2.3-r1.ebuild
deleted file mode 100644
index 5202410afa6f..000000000000
--- a/sys-apps/dbus/dbus-1.2.3-r1.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.2.3-r1.ebuild,v 1.11 2010/04/20 11:36:30 ssuominen Exp $
-
-inherit eutils multilib flag-o-matic
-
-DESCRIPTION="A message bus system, a simple way for applications to talk to each other"
-HOMEPAGE="http://dbus.freedesktop.org/"
-SRC_URI="http://dbus.freedesktop.org/releases/dbus/${P}.tar.gz"
-
-LICENSE="|| ( GPL-2 AFL-2.1 )"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="debug doc selinux X"
-
-RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 )
- selinux? ( sys-libs/libselinux
- sec-policy/selinux-dbus )
- >=dev-libs/expat-1.95.8
- !<sys-apps/dbus-0.91"
-DEPEND="${RDEPEND}
- dev-util/pkgconfig
- doc? ( app-doc/doxygen
- app-text/xmlto )"
-
-src_unpack() {
- unpack ${A}
- cd "${S}"
- # Fix potential DoS issue. fdo bug #17803. Gentoo bug #240308
- epatch "${FILESDIR}"/${PN}-1.2.3-panic-from-dbus_signature_validate.patch
- # Fix runtime error on FreeBSD. Gentoo bug #236779, fdo bug #17061
- # From upstream, drop at next bump
- epatch "${FILESDIR}"/${P}-bsd.patch
-}
-
-src_compile() {
- # so we can get backtraces from apps
- append-flags -rdynamic
-
- local myconf=""
-
- hasq test ${FEATURES} && myconf="${myconf} --enable-tests=yes"
- # libaudit is *only* used in DBus wrt SELinux support, so disable it, if
- # not on an SELinux profile.
- econf \
- $(use_with X x) \
- $(use_enable kernel_linux inotify) \
- $(use_enable kernel_FreeBSD kqueue) \
- $(use_enable selinux) \
- $(use_enable selinux libaudit) \
- $(use_enable debug verbose-mode) \
- $(use_enable debug asserts) \
- --with-xml=expat \
- --with-system-pid-file=/var/run/dbus.pid \
- --with-system-socket=/var/run/dbus/system_bus_socket \
- --with-session-socket-dir=/tmp \
- --with-dbus-user=messagebus \
- --localstatedir=/var \
- $(use_enable doc doxygen-docs) \
- --disable-xml-docs \
- ${myconf} \
- || die "econf failed"
-
- # after the compile, it uses a selinuxfs interface to
- # check if the SELinux policy has the right support
- use selinux && addwrite /selinux/access
-
- emake || die "make failed"
-}
-
-src_test() {
- DBUS_VERBOSE=1 make check || die "make check failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "make install failed"
-
- # initscript
- newinitd "${FILESDIR}"/dbus.init-1.0 dbus
-
- # dbus X session script (#77504)
- # turns out to only work for GDM. has been merged into other desktop
- # (kdm and such scripts)
- exeinto /etc/X11/xinit/xinitrc.d/
- doexe "${FILESDIR}"/30-dbus
-
- # needs to exist for the system socket
- keepdir /var/run/dbus
- # needs to exist for machine id
- keepdir /var/lib/dbus
- # needs to exist for dbus sessions to launch
-
- keepdir /usr/lib/dbus-1.0/services
- keepdir /usr/share/dbus-1/services
- keepdir /etc/dbus-1/system.d/
- keepdir /etc/dbus-1/session.d/
-
- dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO
- if use doc; then
- dohtml doc/*html
- fi
-}
-
-pkg_preinst() {
- enewgroup messagebus
- enewuser messagebus -1 "-1" -1 messagebus
-}
-
-pkg_postinst() {
- elog "To start the D-Bus system-wide messagebus by default"
- elog "you should add it to the default runlevel :"
- elog "\`rc-update add dbus default\`"
- elog
- elog "Some applications require a session bus in addition to the system"
- elog "bus. Please see \`man dbus-launch\` for more information."
- elog
- ewarn "If you are currently running X with the hal useflag enabled"
- ewarn "restarting the dbus service WILL restart X as well"
- ebeep 5
- elog
- ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run"
- ewarn "the new version of the daemon. For many people, this means"
- ewarn "exiting X as well."
-
-}
diff --git a/sys-apps/dbus/dbus-1.3.0-r3.ebuild b/sys-apps/dbus/dbus-1.3.0-r3.ebuild
new file mode 100644
index 000000000000..3a143fe704d5
--- /dev/null
+++ b/sys-apps/dbus/dbus-1.3.0-r3.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.3.0-r3.ebuild,v 1.1 2010/09/09 23:09:05 eva Exp $
+
+EAPI="2"
+
+inherit autotools eutils multilib flag-o-matic
+
+DESCRIPTION="A message bus system, a simple way for applications to talk to each other"
+HOMEPAGE="http://dbus.freedesktop.org/"
+SRC_URI="http://dbus.freedesktop.org/releases/dbus/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 AFL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="debug doc selinux test X"
+
+RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 )
+ selinux? ( sys-libs/libselinux
+ sec-policy/selinux-dbus )
+ >=dev-libs/expat-1.95.8
+ !<sys-apps/dbus-0.91"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ doc? (
+ app-doc/doxygen
+ app-text/xmlto
+ app-text/docbook-xml-dtd:4.1.2 )"
+
+# out of sources build directory
+BD=${WORKDIR}/${P}-build
+# out of sources build dir for make check
+TBD=${WORKDIR}/${P}-tests-build
+
+pkg_setup() {
+ enewgroup messagebus
+ enewuser messagebus -1 "-1" -1 messagebus
+}
+
+src_prepare() {
+ # Remove CFLAGS that is not supported by all gcc, bug #274456
+ sed 's/-Wno-pointer-sign//g' -i configure.in configure || die "sed failed"
+
+ # Tests were restricted because of this
+ sed -e 's/.*bus_dispatch_test.*/printf ("Disabled due to excess noise\\n");/' \
+ -e '/"dispatch"/d' -i "${S}/bus/test-main.c" || die "sed failed"
+
+ # Thread safety patch, upstream #17754
+ epatch "${FILESDIR}/${PN}-1.2.24-thread-safety.patch"
+
+ epatch "${FILESDIR}"/${P}-asneeded.patch
+ epatch "${FILESDIR}"/${P}-no-cloexec.patch
+ # required for asneeded patch but also for bug 263909, cross-compile so
+ # don't remove eautoreconf
+ eautoreconf
+}
+
+src_configure() {
+ local my_conf
+
+ # so we can get backtraces from apps
+ append-flags -rdynamic
+
+ # libaudit is *only* used in DBus wrt SELinux support, so disable it, if
+ # not on an SELinux profile.
+ my_conf="$(use_with X x)
+ $(use_enable debug verbose-mode)
+ $(use_enable debug asserts)
+ $(use_enable kernel_linux inotify)
+ $(use_enable kernel_FreeBSD kqueue)
+ $(use_enable selinux)
+ $(use_enable selinux libaudit)
+ --with-xml=expat
+ --with-system-pid-file=/var/run/dbus.pid
+ --with-system-socket=/var/run/dbus/system_bus_socket
+ --with-session-socket-dir=/tmp
+ --with-dbus-user=messagebus
+ --localstatedir=/var"
+
+ mkdir "${BD}"
+ cd "${BD}"
+ einfo "Running configure in ${BD}"
+ ECONF_SOURCE="${S}" econf ${my_conf} \
+ $(use_enable doc doxygen-docs) \
+ $(use_enable doc xml-docs)
+
+ if use test; then
+ mkdir "${TBD}"
+ cd "${TBD}"
+ einfo "Running configure in ${TBD}"
+ ECONF_SOURCE="${S}" econf \
+ ${my_conf} \
+ $(use_enable test checks) \
+ $(use_enable test tests) \
+ $(use_enable test asserts)
+ fi
+}
+
+src_compile() {
+ # after the compile, it uses a selinuxfs interface to
+ # check if the SELinux policy has the right support
+ use selinux && addwrite /selinux/access
+
+ cd "${BD}"
+ einfo "Running make in ${BD}"
+ emake || die "make failed"
+
+ if use doc; then
+ einfo "Building API documentation..."
+ doxygen || die "doxygen failed"
+ fi
+
+ if use test; then
+ cd "${TBD}"
+ einfo "Running make in ${TBD}"
+ emake || die "make failed"
+ fi
+}
+
+src_test() {
+ cd "${TBD}"
+ DBUS_VERBOSE=1 make check || die "make check failed"
+}
+
+src_install() {
+ # initscript
+ newinitd "${FILESDIR}"/dbus.init-1.0 dbus || die "newinitd failed"
+
+ if use X ; then
+ # dbus X session script (#77504)
+ # turns out to only work for GDM (and startx). has been merged into
+ # other desktop (kdm and such scripts)
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}"/80-dbus || die "doexe failed"
+ fi
+
+ # needs to exist for the system socket
+ keepdir /var/run/dbus
+ # needs to exist for machine id
+ keepdir /var/lib/dbus
+ # needs to exist for dbus sessions to launch
+
+ keepdir /usr/lib/dbus-1.0/services
+ keepdir /usr/share/dbus-1/services
+ keepdir /etc/dbus-1/system.d/
+ keepdir /etc/dbus-1/session.d/
+
+ dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO || die "dodoc failed"
+
+ cd "${BD}"
+ # FIXME: split dtd's in dbus-dtd ebuild
+ emake DESTDIR="${D}" install || die "make install failed"
+ if use doc; then
+ dohtml doc/*.html doc/api/html/* || die "dohtml failed"
+ fi
+}
+
+pkg_postinst() {
+ elog "To start the D-Bus system-wide messagebus by default"
+ elog "you should add it to the default runlevel :"
+ elog "\`rc-update add dbus default\`"
+ elog
+ elog "Some applications require a session bus in addition to the system"
+ elog "bus. Please see \`man dbus-launch\` for more information."
+ elog
+ ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run"
+ ewarn "the new version of the daemon."
+
+ if has_version "x11-base/xorg-server[hal]"; then
+ elog
+ ewarn "You are currently running X with the hal useflag enabled"
+ ewarn "restarting the dbus service WILL restart X as well"
+ ebeep 5
+ fi
+
+ # Ensure unique id is generated
+ dbus-uuidgen --ensure="${ROOT}"/var/lib/dbus/machine-id
+}
diff --git a/sys-apps/dbus/files/dbus-1.2.3-bsd.patch b/sys-apps/dbus/files/dbus-1.2.3-bsd.patch
deleted file mode 100644
index d85b93daa225..000000000000
--- a/sys-apps/dbus/files/dbus-1.2.3-bsd.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=236779
-
-
-commit 3564e5cbe4d9c0538d6eb519904ef0befab39d75
-Author: Joe Marcus Clarke <marcus@freedesktop.org>
-Date: Thu Sep 4 22:13:30 2008 -0400
-
- Bug 17061: Handle error return from sysconf correctly
-
- * dbus/dbus-sysdeps-unix.c:
- * dbus/dbus-sysdeps-util-unix.c: Cast return
- from sysconf temporarily so we actually see
- -1.
-
- Signed-off-by: Colin Walters <walters@verbum.org>
-
-diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
-index 3f963bc..24a3774 100644
---- a/dbus/dbus-sysdeps-unix.c
-+++ b/dbus/dbus-sysdeps-unix.c
-@@ -1493,7 +1493,11 @@ fill_user_info (DBusUserInfo *info,
- /* retrieve maximum needed size for buf */
- buflen = sysconf (_SC_GETPW_R_SIZE_MAX);
-
-- if (buflen <= 0)
-+ /* sysconf actually returns a long, but everything else expects size_t,
-+ * so just recast here.
-+ * https://bugs.freedesktop.org/show_bug.cgi?id=17061
-+ */
-+ if ((long) buflen <= 0)
- buflen = 1024;
-
- result = -1;
-diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c
-index 55eb934..0343a90 100644
---- a/dbus/dbus-sysdeps-util-unix.c
-+++ b/dbus/dbus-sysdeps-util-unix.c
-@@ -836,7 +836,11 @@ fill_group_info (DBusGroupInfo *info,
- /* retrieve maximum needed size for buf */
- buflen = sysconf (_SC_GETGR_R_SIZE_MAX);
-
-- if (buflen <= 0)
-+ /* sysconf actually returns a long, but everything else expects size_t,
-+ * so just recast here.
-+ * https://bugs.freedesktop.org/show_bug.cgi?id=17061
-+ */
-+ if ((long) buflen <= 0)
- buflen = 1024;
-
- result = -1;
diff --git a/sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch b/sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch
deleted file mode 100644
index 772da176822a..000000000000
--- a/sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 1 Oct 2008 17:49:48 +0000 (-0400)
-Subject: Bug 17803: Panic from dbus_signature_validate
-X-Git-Url: http://gitweb.freedesktop.org/?p=dbus/dbus.git;a=commitdiff;h=7b10b46c5c8658449783ce45f1273dd35c353bce
-
-Bug 17803: Panic from dbus_signature_validate
-
- * dbus/dbus-marshal-validate.c: Ensure we validate
- a basic type before calling is_basic on it.
- * dbus-marshal-validate-util.c: Test.
----
-
---- a/dbus/dbus-marshal-validate-util.c
-+++ b/dbus/dbus-marshal-validate-util.c
-@@ -228,6 +228,7 @@ _dbus_marshal_validate_test (void)
- "123",
- ".",
- "("
-+ "a{(ii)i}" /* https://bugs.freedesktop.org/show_bug.cgi?id=17803 */
- };
-
- /* Signature with reason */
---- a/dbus/dbus-marshal-validate.c
-+++ b/dbus/dbus-marshal-validate.c
-@@ -247,6 +247,7 @@ _dbus_validate_signature_with_reason (co
- }
-
- if (last == DBUS_DICT_ENTRY_BEGIN_CHAR &&
-+ _dbus_type_is_valid (*p) &&
- !dbus_type_is_basic (*p))
- {
- result = DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE;