platform/upstream/dbus.git
11 years agoUpdated man docbook xml sources from man page source using doclifter.
Ralf Habacker [Tue, 5 Feb 2013 01:19:28 +0000 (02:19 +0100)]
Updated man docbook xml sources from man page source using doclifter.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59805
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoMoved docbook sources used by cmake into doc subdir and adapted cmake build system.
Ralf Habacker [Tue, 5 Feb 2013 00:20:46 +0000 (01:20 +0100)]
Moved docbook sources used by cmake into doc subdir and adapted cmake build system.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59805
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoMore NEWS for 1.7
Simon McVittie [Tue, 12 Feb 2013 11:45:26 +0000 (11:45 +0000)]
More NEWS for 1.7

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Tue, 12 Feb 2013 11:44:29 +0000 (11:44 +0000)]
Merge branch 'dbus-1.6'

11 years agoNEWS for 1.6
Simon McVittie [Tue, 12 Feb 2013 11:44:11 +0000 (11:44 +0000)]
NEWS for 1.6

11 years agoAdd poll constants for QNX
Matt Fischer [Tue, 5 Feb 2013 00:14:31 +0000 (18:14 -0600)]
Add poll constants for QNX

The QNX operating system uses different values for its poll
constants, so they must be added into dbus-sysdeps.h in order
for poll() to work correctly.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=60339
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoUpdate sd-daemon.[ch] from systemd
Simon McVittie [Tue, 12 Feb 2013 11:14:55 +0000 (11:14 +0000)]
Update sd-daemon.[ch] from systemd

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=60681

11 years agoFixed cmake cross compile timestamp creating.
Ralf Habacker [Mon, 28 Jan 2013 19:05:34 +0000 (20:05 +0100)]
Fixed cmake cross compile timestamp creating.

We only need to distinct "Windows" from unix like systems

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59733
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoUses cmake provided expat find package.
Ralf Habacker [Tue, 29 Jan 2013 18:52:06 +0000 (19:52 +0100)]
Uses cmake provided expat find package.

The cmake provided expat find package is more up to date.
There is no need to maintain an additional one.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59733
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoMerge <servicehelper> from included config file
Krzysztof Konopko [Fri, 29 Jun 2012 12:40:37 +0000 (13:40 +0100)]
Merge <servicehelper> from included config file

<servicehelper> is not supported in the included config file, i. e. it's
not merged in merge_included().  There's clearly no reason it shouldn't
be supported in the included config file along with <user>, <type>
and others.  It's quite reasonable for a client willing to override the
default servicehelper, e. g. in system-local.conf.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51560
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agobuild: Dist autogen.sh
Colin Walters [Tue, 5 Feb 2013 17:22:13 +0000 (12:22 -0500)]
build: Dist autogen.sh

For convenience of people who have to patch the autotools.
See also http://people.gnome.org/~walters/docs/build-api.txt

https://bugs.freedesktop.org/show_bug.cgi?id=60330

11 years agoCMake build system fix: Lets check for xmlto doc book generator first.
Ralf Habacker [Mon, 28 Jan 2013 18:55:10 +0000 (19:55 +0100)]
CMake build system fix: Lets check for xmlto doc book generator first.

We shouldn't try to build the documentation with meinproc *and* xmlto.
Prefer xmlto, since it's also the one we use under Autotools.
We still need to support meinproc as a fallback, because xmlto isn't
available on Windows.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59733
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoFixed cmake warning related to WIN32 macro when configuring on cygwin
Ralf Habacker [Tue, 15 Jan 2013 09:09:25 +0000 (10:09 +0100)]
Fixed cmake warning related to WIN32 macro when configuring on cygwin

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59401
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoCreate missing directories in cmake <build-root>/bus/session.d and <build-root>/bus...
Ralf Habacker [Wed, 5 Sep 2012 03:07:20 +0000 (05:07 +0200)]
Create missing directories in cmake <build-root>/bus/session.d and <build-root>/bus/system.d

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=41319
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoCreate missing directories in cmake <build-root>/bus/session.d and <build-root>/bus...
Ralf Habacker [Wed, 5 Sep 2012 03:07:20 +0000 (05:07 +0200)]
Create missing directories in cmake <build-root>/bus/session.d and <build-root>/bus/system.d

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=41319
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoNEWS
Simon McVittie [Mon, 19 Nov 2012 15:21:57 +0000 (15:21 +0000)]
NEWS

As well as documenting recent changes, this sorts out some divergence
between the master and dbus-1.6 versions of NEWS, so the 1.6 entries
are the same as in the corresponding releases.

11 years agodbus-sysdeps-pthread.c: don't fail if !HAVE_MONOTONIC_CLOCK under -Werror=unused
Simon McVittie [Mon, 13 Aug 2012 18:43:56 +0000 (19:43 +0100)]
dbus-sysdeps-pthread.c: don't fail if !HAVE_MONOTONIC_CLOCK under -Werror=unused

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=47239

11 years agoconfigure: redo pthread check to check for more things
Simon McVittie [Mon, 13 Aug 2012 18:43:12 +0000 (19:43 +0100)]
configure: redo pthread check to check for more things

In principle, anything in the pthread namespace might either be in the
platform-specific thread library (libpthread or libpthreads or libthreads
or ...), or in libc.

In particular, it seems that pthread_mutexattr_init and
pthread_mutexattr_settype are in libpthread, not libc, on Linux. We
previously didn't (intentionally) look for them in libpthread, only
in libc; so this check deserved to fail.

However, a faulty configure check for pthread_cond_timedwait
worked around this on Linux by checking for -lpthread and adding it
to THREAD_LIBS if pthread_cond_timedwait *was* found in libc (even
though that behaviour makes no sense).

The practical impact was that D-Bus would fail to compile on platforms
where pthread_cond_timedwait is in a special threading library that
is not linked by default, and at least one of
(pthread_mutexattr_init, pthread_mutexattr_settype) is also in a
special threading library. This is the case on at least OpenBSD
(fd.o #54416).

So far I've only added checks for the new symbols introduced by
using recursive pthreads mutexes. If we get reports of compilation
failures on weird platforms, we can check for more symbols.

Also clarify the indentation, which was turning into quite a mess,
and use AS_IF instead of if/elif/else/fi in accordance with Autoconf
best-practice.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=47239
Reviewed-by: Colin Walters <walters@verbum.org>
11 years agoDon't include generated documentation in the tarball
Simon McVittie [Fri, 9 Nov 2012 14:24:26 +0000 (14:24 +0000)]
Don't include generated documentation in the tarball

Building it unconditionally causes problems for minimal installations
(OSTree), and building it opportunistically means the tarball isn't
guaranteed to contain it, depending who releases libdbus and which
packages they happen to have installed at the time. If this documentation
is important enough that we need to ship it precompiled in tarballs,
we should guarantee it; or if it isn't important enough to justify that,
we should just drop it.

I don't think we really need it in the tarballs at all: most users
will get their libdbus from a binary distribution (in which case I expect
the distribution's dbus maintainers to set appropriate
build-dependencies), and those who build from source can either
install xmlto, read the documentation on our website, or at worst,
read the source XML. (We don't put the Doxygen-generated API reference
HTML in the tarball either, and I haven't heard any complaints.)

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=55426
Reviewed-by: Colin Walters <walters@verbum.org>
11 years agoRemove redundant close() calls
Michel HERMIER [Fri, 9 Nov 2012 15:53:46 +0000 (15:53 +0000)]
Remove redundant close() calls

The dup2() calls immediately afterwards will close the "destination" fd
if necessary.

[commit message added -smcv]
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Fri, 9 Nov 2012 16:07:44 +0000 (16:07 +0000)]
Merge branch 'dbus-1.6'

Conflicts:
NEWS

11 years agoNEWS
Simon McVittie [Fri, 9 Nov 2012 16:02:53 +0000 (16:02 +0000)]
NEWS

11 years agoDon't leak temporary fds pointing to /dev/null
Michel HERMIER [Fri, 9 Nov 2012 15:44:43 +0000 (15:44 +0000)]
Don't leak temporary fds pointing to /dev/null

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=56927
[commit message added -smcv]
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoUse InterlockedExchange to get a full memory barrier on Windows
Simon McVittie [Mon, 13 Aug 2012 17:00:23 +0000 (18:00 +0100)]
Use InterlockedExchange to get a full memory barrier on Windows

See the bug for extensive discussion.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=41423
Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
11 years agoinclude README.valgrind in tarballs
Simon McVittie [Fri, 9 Nov 2012 15:28:16 +0000 (15:28 +0000)]
include README.valgrind in tarballs

11 years agoAdd documentation on running clients with Valgrind
Arun Raghavan [Fri, 12 Oct 2012 16:34:11 +0000 (22:04 +0530)]
Add documentation on running clients with Valgrind

Quick documentation on how Valgrind can be run in clients without
triggering false positives.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=55933
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agobuild: Ensure docs are enabled for distcheck
Colin Walters [Thu, 4 Oct 2012 20:54:02 +0000 (16:54 -0400)]
build: Ensure docs are enabled for distcheck

https://bugs.freedesktop.org/show_bug.cgi?id=55426

Signed-off-by: Colin Walters <walters@verbum.org>
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoFix building with newer Valgrind
Arun Raghavan [Fri, 12 Oct 2012 16:22:03 +0000 (21:52 +0530)]
Fix building with newer Valgrind

Newer valgrind (tried with 3.8.0) defines macros so that a terminating
semi-colon is required. This fixes usage to follow that convention.

[edited to remove comments that are no longer useful -smcv]
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=55932
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agospec: fix command name REJECT -> REJECTED
Pavel Strashkin [Thu, 1 Nov 2012 19:29:23 +0000 (12:29 -0700)]
spec: fix command name REJECT -> REJECTED

Signed-off-by: Pavel Strashkin <pavel.strashkin@nexenta.com>
Signed-off-by: Colin Walters <walters@verbum.org>
11 years agodbus-spawn: fix spacing mistake in comment
Ray Strode [Tue, 16 Oct 2012 19:29:27 +0000 (15:29 -0400)]
dbus-spawn: fix spacing mistake in comment

commit 90f939f155bd120f44ff3906296707a6c00cd462 had two problems.

1) a small whitespace error in the added comment
2) the wrong bug reference at the bottom

I'm using 1) as an excuse to add additional commit for the sake
of 2).

https://bugs.freedesktop.org/show_bug.cgi?id=56043

11 years agodbus-spawn: set SIGPIPE to SIG_IGN before activating services
Ray Strode [Tue, 16 Oct 2012 18:38:28 +0000 (14:38 -0400)]
dbus-spawn: set SIGPIPE to SIG_IGN before activating services

dbus's service activation code sets SIGPIPE to SIG_DFL as a
sort of poor man's prctl(... PR_SET_PDEATHSIG) to detect when
the parent goes away.

It neglects to reignore the infamous signal before performing
activation, however.

This means if, for instance, journald is restarted all
services activated after it will die with SIGPIPE when logging
messages unless they explicitly ignore SIGPIPE themselves.

This commit changes dbus's service activation code to correctly
ignore SIGPIPE to protect activated services from a gruesome,
premature death.

Reviewed-by: Lennart Poettering <lennart@poettering.net>
https://bugzilla.redhat.com/show_bug.cgi?id=839258

11 years agoSet correct address when using --address=systemd:
Simon Peeters [Sun, 7 Oct 2012 14:59:30 +0000 (16:59 +0200)]
Set correct address when using --address=systemd:

When dbus gets launched through systemd, we need to create an address
string based on the sockets passed.

The _dbus_append_addres_from_socket() function is responsible for
extracting the address information from the file-descriptor and
formatting it in a dbus friendly way.

This fixes bus activation when running dbus under a systemd session.

https://bugs.freedesktop.org/show_bug.cgi?id=50962

Signed-off-by: Simon Peeters <peeters.simon@gmail.com>
11 years agoMerge remote-tracking branch 'origin/master'
Simon McVittie [Thu, 4 Oct 2012 07:55:49 +0000 (08:55 +0100)]
Merge remote-tracking branch 'origin/master'

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Thu, 4 Oct 2012 07:54:58 +0000 (08:54 +0100)]
Merge branch 'dbus-1.6'

Conflicts:
NEWS
bus/activation-helper.c
configure.ac

11 years agoactivation helper: when compiled for tests, do not reset system bus address
Simon McVittie [Tue, 2 Oct 2012 08:34:48 +0000 (09:34 +0100)]
activation helper: when compiled for tests, do not reset system bus address

Otherwise, the tests try to connect to the real system bus, which will
often fail - particularly if you run the tests configured for the default
/usr/local (with no intention of installing the result), in which case
the tests would try to connect to /usr/local/var/run/dbus/system_bus_socket.

Reviewed-by: Colin Walters <walters@verbum.org>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agobuild: Make --disable-xml-docs build work again
Colin Walters [Sun, 8 Jan 2012 17:11:11 +0000 (12:11 -0500)]
build: Make --disable-xml-docs build work again

We can't build the .html files without xmlto, so don't add them
to a dist_ variable.

https://bugs.freedesktop.org/show_bug.cgi?id=55426

11 years agoPost-release version bump
Simon McVittie [Tue, 2 Oct 2012 08:47:20 +0000 (09:47 +0100)]
Post-release version bump

11 years agoRevert "hardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()"
Colin Walters [Fri, 28 Sep 2012 19:31:47 +0000 (15:31 -0400)]
Revert "hardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()"

Follow to reverting a556443757b19fee67ef4441141246dd9cfed4f.
See https://bugs.freedesktop.org/show_bug.cgi?id=52202#c24

This reverts commit d7ffad72146c2329692e0cf32eb1ac1dbb4fb51c.

11 years agoRevert "hardening: Use __secure_getenv if available"
Colin Walters [Fri, 28 Sep 2012 19:31:05 +0000 (15:31 -0400)]
Revert "hardening: Use __secure_getenv if available"

It breaks gnome-keyring-daemon at least in some
configurations; see
https://bugs.freedesktop.org/show_bug.cgi?id=52202#c24

This reverts commit 1a556443757b19fee67ef4441141246dd9cfed4f.

11 years agoRelease 1.6.8 dbus-1.6.8 upstream/1.6.8
Colin Walters [Fri, 28 Sep 2012 19:44:59 +0000 (15:44 -0400)]
Release 1.6.8

11 years agoRevert "hardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()"
Colin Walters [Fri, 28 Sep 2012 19:31:47 +0000 (15:31 -0400)]
Revert "hardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()"

Follow to reverting a556443757b19fee67ef4441141246dd9cfed4f.
See https://bugs.freedesktop.org/show_bug.cgi?id=52202#c24

This reverts commit d7ffad72146c2329692e0cf32eb1ac1dbb4fb51c.

11 years agoRevert "hardening: Use __secure_getenv if available"
Colin Walters [Fri, 28 Sep 2012 19:31:05 +0000 (15:31 -0400)]
Revert "hardening: Use __secure_getenv if available"

It breaks gnome-keyring-daemon at least in some
configurations; see
https://bugs.freedesktop.org/show_bug.cgi?id=52202#c24

This reverts commit 1a556443757b19fee67ef4441141246dd9cfed4f.

11 years agoResume development
Colin Walters [Fri, 28 Sep 2012 17:20:14 +0000 (13:20 -0400)]
Resume development

11 years agoRelease 1.6.6 dbus-1.6.6
Colin Walters [Fri, 28 Sep 2012 17:08:42 +0000 (13:08 -0400)]
Release 1.6.6

11 years agoactivation-helper: Ensure DBUS_STARTER_ADDRESS is set correctly
Geoffrey Thomas [Fri, 28 Sep 2012 05:02:06 +0000 (22:02 -0700)]
activation-helper: Ensure DBUS_STARTER_ADDRESS is set correctly

The fix for CVE-2012-3524 filters out all environment variables if
libdbus is used from a setuid program, to prevent various spoofing
attacks.

Unfortunately, the activation helper is a setuid program linking
libdbus, and this creates a regression for launched programs using
DBUS_STARTER_ADDRESS, since it will no longer exist.

Fix this by hardcoding the starter address to the default system bus
address.

Signed-off-by: Geoffrey Thomas <gthomas@mokafive.com>
Signed-off-by: Colin Walters <walters@verbum.org>
11 years agohardening: Remove activation helper handling for DBUS_VERBOSE
Colin Walters [Fri, 28 Sep 2012 16:01:56 +0000 (12:01 -0400)]
hardening: Remove activation helper handling for DBUS_VERBOSE

It's not really useful.

See https://bugs.freedesktop.org/show_bug.cgi?id=52202#c17

11 years agohardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()
Colin Walters [Fri, 28 Sep 2012 14:05:59 +0000 (10:05 -0400)]
hardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()

This is a further security measure for the case of Linux/glibc
when we're linked into a binary that's using filesystem capabilities
or SELinux domain transitions (i.e. not plain old setuid).

In this case, _dbus_getenv () will return NULL because it will
use __secure_getenv(), which handles those via AT_SECURE.

https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agohardening: Ensure _dbus_check_setuid() is initialized threadsafe manner
Colin Walters [Fri, 28 Sep 2012 01:35:22 +0000 (21:35 -0400)]
hardening: Ensure _dbus_check_setuid() is initialized threadsafe manner

This is a highly theoretical concern, but we might as well.

https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agohardening: Use __secure_getenv if available
Colin Walters [Fri, 28 Sep 2012 01:29:29 +0000 (21:29 -0400)]
hardening: Use __secure_getenv if available

This helps us in the case where we were executed via filesystem
capabilities or a SELinux domain transition, not necessarily a plain
old setuid binary.

https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agoCVE-2012-3524: Don't access environment variables or run dbus-launch when setuid
Colin Walters [Wed, 22 Aug 2012 14:03:34 +0000 (10:03 -0400)]
CVE-2012-3524: Don't access environment variables or run dbus-launch when setuid

This matches a corresponding change in GLib.  See
glib/gutils.c:g_check_setuid().

Some programs attempt to use libdbus when setuid; notably the X.org
server is shipped in such a configuration. libdbus never had an
explicit policy about its use in setuid programs.

I'm not sure whether we should advertise such support.  However, given
that there are real-world programs that do this currently, we can make
them safer with not too much effort.

Better to fix a problem caused by an interaction between two
components in *both* places if possible.

How to determine whether or not we're running in a privilege-escalated
path is operating system specific.  Note that GTK+'s code to check
euid versus uid worked historically on Unix, more modern systems have
filesystem capabilities and SELinux domain transitions, neither of
which are captured by the uid comparison.

On Linux/glibc, the way this works is that the kernel sets an
AT_SECURE flag in the ELF auxiliary vector, and glibc looks for it on
startup.  If found, then glibc sets a public-but-undocumented
__libc_enable_secure variable which we can use.  Unfortunately, while
it *previously* worked to check this variable, a combination of newer
binutils and RPM break it:
http://www.openwall.com/lists/owl-dev/2012/08/14/1

So for now on Linux/glibc, we fall back to the historical Unix version
until we get glibc fixed.

On some BSD variants, there is a issetugid() function.  On other Unix
variants, we fall back to what GTK+ has been doing.

Reported-by: Sebastian Krahmer <krahmer@suse.de>
Signed-off-by: Colin Walters <walters@verbum.org>
11 years agoactivation-helper: Ensure DBUS_STARTER_ADDRESS is set correctly
Geoffrey Thomas [Fri, 28 Sep 2012 05:02:06 +0000 (22:02 -0700)]
activation-helper: Ensure DBUS_STARTER_ADDRESS is set correctly

The fix for CVE-2012-3524 filters out all environment variables if
libdbus is used from a setuid program, to prevent various spoofing
attacks.

Unfortunately, the activation helper is a setuid program linking
libdbus, and this creates a regression for launched programs using
DBUS_STARTER_ADDRESS, since it will no longer exist.

Fix this by hardcoding the starter address to the default system bus
address.

Signed-off-by: Geoffrey Thomas <gthomas@mokafive.com>
Signed-off-by: Colin Walters <walters@verbum.org>
11 years agohardening: Remove activation helper handling for DBUS_VERBOSE
Colin Walters [Fri, 28 Sep 2012 16:01:56 +0000 (12:01 -0400)]
hardening: Remove activation helper handling for DBUS_VERBOSE

It's not really useful.

See https://bugs.freedesktop.org/show_bug.cgi?id=52202#c17

11 years agohardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()
Colin Walters [Fri, 28 Sep 2012 14:05:59 +0000 (10:05 -0400)]
hardening: Use __secure_getenv() in *addition* to _dbus_check_setuid()

This is a further security measure for the case of Linux/glibc
when we're linked into a binary that's using filesystem capabilities
or SELinux domain transitions (i.e. not plain old setuid).

In this case, _dbus_getenv () will return NULL because it will
use __secure_getenv(), which handles those via AT_SECURE.

https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agohardening: Ensure _dbus_check_setuid() is initialized threadsafe manner
Colin Walters [Fri, 28 Sep 2012 01:35:22 +0000 (21:35 -0400)]
hardening: Ensure _dbus_check_setuid() is initialized threadsafe manner

This is a highly theoretical concern, but we might as well.

https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agohardening: Use __secure_getenv if available
Colin Walters [Fri, 28 Sep 2012 01:29:29 +0000 (21:29 -0400)]
hardening: Use __secure_getenv if available

This helps us in the case where we were executed via filesystem
capabilities or a SELinux domain transition, not necessarily a plain
old setuid binary.

https://bugs.freedesktop.org/show_bug.cgi?id=52202

11 years agoCVE-2012-3524: Don't access environment variables or run dbus-launch when setuid
Colin Walters [Wed, 22 Aug 2012 14:03:34 +0000 (10:03 -0400)]
CVE-2012-3524: Don't access environment variables or run dbus-launch when setuid

This matches a corresponding change in GLib.  See
glib/gutils.c:g_check_setuid().

Some programs attempt to use libdbus when setuid; notably the X.org
server is shipped in such a configuration. libdbus never had an
explicit policy about its use in setuid programs.

I'm not sure whether we should advertise such support.  However, given
that there are real-world programs that do this currently, we can make
them safer with not too much effort.

Better to fix a problem caused by an interaction between two
components in *both* places if possible.

How to determine whether or not we're running in a privilege-escalated
path is operating system specific.  Note that GTK+'s code to check
euid versus uid worked historically on Unix, more modern systems have
filesystem capabilities and SELinux domain transitions, neither of
which are captured by the uid comparison.

On Linux/glibc, the way this works is that the kernel sets an
AT_SECURE flag in the ELF auxiliary vector, and glibc looks for it on
startup.  If found, then glibc sets a public-but-undocumented
__libc_enable_secure variable which we can use.  Unfortunately, while
it *previously* worked to check this variable, a combination of newer
binutils and RPM break it:
http://www.openwall.com/lists/owl-dev/2012/08/14/1

So for now on Linux/glibc, we fall back to the historical Unix version
until we get glibc fixed.

On some BSD variants, there is a issetugid() function.  On other Unix
variants, we fall back to what GTK+ has been doing.

Reported-by: Sebastian Krahmer <krahmer@suse.de>
Signed-off-by: Colin Walters <walters@verbum.org>
11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Mon, 3 Sep 2012 09:20:01 +0000 (10:20 +0100)]
Merge branch 'dbus-1.6'

11 years agoNEWS
Simon McVittie [Mon, 3 Sep 2012 09:19:29 +0000 (10:19 +0100)]
NEWS

11 years agoDetect MSG_NOSIGNAL and SCM_RIGHTS on OpenBSD
Brad Smith [Mon, 3 Sep 2012 09:12:02 +0000 (10:12 +0100)]
Detect MSG_NOSIGNAL and SCM_RIGHTS on OpenBSD

On OpenBSD, sys/socket.h requires sys/types.h to be included first.

Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54418

11 years agoNEWS for #38201
Simon McVittie [Mon, 13 Aug 2012 19:15:19 +0000 (20:15 +0100)]
NEWS for #38201

11 years agoMerge branch 'dbus-1.6', rejecting reversion of #38201
Simon McVittie [Mon, 13 Aug 2012 19:13:27 +0000 (20:13 +0100)]
Merge branch 'dbus-1.6', rejecting reversion of #38201

11 years agoRevert "cmake: use the same default system bus address as for autotools"
Simon McVittie [Mon, 13 Aug 2012 19:13:16 +0000 (20:13 +0100)]
Revert "cmake: use the same default system bus address as for autotools"

This reverts commit 05b0b9e65b6a58f0b0cb56d6ee8cf100061250b3.

11 years agoRevert "Split DBUS_SESSION_BUS_DEFAULT_ADDRESS into listen, connect addresses and...
Simon McVittie [Mon, 13 Aug 2012 19:12:59 +0000 (20:12 +0100)]
Revert "Split DBUS_SESSION_BUS_DEFAULT_ADDRESS into listen, connect addresses and set better defaults"

This reverts commit b5d36dc27d1905d4d46ad7f0097f0ea0e0776adb.

On second thoughts, this is too big a change for a stable branch.

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Mon, 13 Aug 2012 19:02:11 +0000 (20:02 +0100)]
Merge branch 'dbus-1.6'

11 years agoSplit DBUS_SESSION_BUS_DEFAULT_ADDRESS into listen, connect addresses and set better...
Simon McVittie [Mon, 13 Aug 2012 18:57:13 +0000 (19:57 +0100)]
Split DBUS_SESSION_BUS_DEFAULT_ADDRESS into listen, connect addresses and set better defaults

On Unix, the connect address should basically always be "autolaunch:"
but the listen address has to be something you can listen on.

On Windows, you can listen on "autolaunch:" or
"autolaunch:scope=*install-path", for instance, and the dbus-daemon is
involved in the auto-launching process.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38201
Reviewed-by: David Zeuthen <davidz@redhat.com>
[default address changed to autolaunch: for interop with GDBus -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agocmake: use the same default system bus address as for autotools
Simon McVittie [Wed, 4 Jan 2012 19:39:54 +0000 (19:39 +0000)]
cmake: use the same default system bus address as for autotools

The system bus is unsupported (and rather meaningless) on Windows anyway,
so we can use anything. Also, make it clear that it has to be a
"specific" address that can be listened on *and* connected to,
like unix:path=/xxx - a listen-only address like unix:tmpdir=/xxx or
nonce-tcp: would not be suitable.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38201
Reviewed-by: David Zeuthen <davidz@redhat.com>
11 years agoNEWS
Simon McVittie [Thu, 9 Aug 2012 11:42:52 +0000 (12:42 +0100)]
NEWS

11 years agoMerge branch 'master' of git+ssh://git.freedesktop.org/git/dbus/dbus
Simon McVittie [Thu, 9 Aug 2012 11:37:25 +0000 (12:37 +0100)]
Merge branch 'master' of git+ssh://git.freedesktop.org/git/dbus/dbus

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Thu, 9 Aug 2012 11:32:32 +0000 (12:32 +0100)]
Merge branch 'dbus-1.6'

Conflicts:
NEWS
configure.ac

11 years agoNEWS
Simon McVittie [Thu, 9 Aug 2012 11:31:48 +0000 (12:31 +0100)]
NEWS

11 years agoDefine __EXTENSIONS__ on Solaris to get sockaddr_in6 and sockaddr_storage
Jonathan Perkin [Thu, 9 Aug 2012 11:26:06 +0000 (12:26 +0100)]
Define __EXTENSIONS__ on Solaris to get sockaddr_in6 and sockaddr_storage

[smcv: comments updated, commit message added]
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=53286

11 years agoCheck HAVE_DECL_LOG_PERROR with #if, not #ifdef
Jonathan Perkin [Thu, 9 Aug 2012 11:25:02 +0000 (12:25 +0100)]
Check HAVE_DECL_LOG_PERROR with #if, not #ifdef

It's always defined.

[smcv: commit message added]
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=53286

11 years ago1.6.5
Simon McVittie [Wed, 18 Jul 2012 18:30:23 +0000 (19:30 +0100)]
1.6.5

11 years agoPrepare 1.6.4 release dbus-1.6.4
Simon McVittie [Wed, 18 Jul 2012 17:11:49 +0000 (18:11 +0100)]
Prepare 1.6.4 release

11 years agoFix launching of dbus-daemon on Windows in paths containing spaces
Wolfgang Baron [Wed, 18 Jul 2012 17:09:44 +0000 (18:09 +0100)]
Fix launching of dbus-daemon on Windows in paths containing spaces

If dbus is installed in a path, which contains a space, dbus-launch will
not launch the daemon. That is so, because a command line is built from
just the path to the daemon and a parameter. The path has to be
surrounded with quotes. This can be done unconditionally, because the
quotes do not cause any trouble even if they are not needed.

Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=49450

11 years agospec: Mention object path and interface name
Colin Walters [Sun, 8 Jul 2012 13:37:09 +0000 (09:37 -0400)]
spec: Mention object path and interface name

We didn't actually have /org/freedesktop/DBus in the spec, nor did we
explicitly mention the existence of "org.freedesktop.DBus" as an
interface, although it is implicit in the method names.

https://bugs.freedesktop.org/show_bug.cgi?id=51865

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Tue, 3 Jul 2012 19:12:16 +0000 (20:12 +0100)]
Merge branch 'dbus-1.6'

11 years agoNEWS
Simon McVittie [Tue, 3 Jul 2012 19:12:10 +0000 (20:12 +0100)]
NEWS

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Tue, 3 Jul 2012 18:21:00 +0000 (19:21 +0100)]
Merge branch 'dbus-1.6'

11 years agoSet enable-developer default to 'no'
Simon McVittie [Tue, 3 Jul 2012 14:53:31 +0000 (15:53 +0100)]
Set enable-developer default to 'no'

Misplaced [] and () led to enable_developer=no being part of the
option's documentation instead of actually being the default value.

Regression in 1.6.2, caused by #34671.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51657
Bug-Debian: http://bugs.debian.org/680027
Reviewed-by: David Zeuthen <davidz@redhat.com>
11 years agoDBusTransport: do not assert that autolaunch address is non-empty
Simon McVittie [Tue, 3 Jul 2012 08:26:27 +0000 (09:26 +0100)]
DBusTransport: do not assert that autolaunch address is non-empty

dbus-launch can apparently return an empty address under certain
circumstances, and dbus_parse_address() in the next line will return
a nice DBusError for an empty address rather than aborting the process.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51657
Bug-Debian: http://bugs.debian.org/680027
Reviewed-by: David Zeuthen <davidz@redhat.com>
11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Thu, 28 Jun 2012 15:50:23 +0000 (16:50 +0100)]
Merge branch 'dbus-1.6'

Conflicts:
NEWS
configure.ac

11 years agoNEWS
Simon McVittie [Thu, 28 Jun 2012 15:49:01 +0000 (16:49 +0100)]
NEWS

11 years agoProperly concat DBUS_CONSOLE_AUTH_DIR with username
Dave Reisner [Thu, 28 Jun 2012 14:50:46 +0000 (15:50 +0100)]
Properly concat DBUS_CONSOLE_AUTH_DIR with username

This removes the assumption that DBUS_CONSOLE_AUTH_DIR ends with a
trailing /.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51521
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoResume development
Simon McVittie [Wed, 27 Jun 2012 17:52:53 +0000 (18:52 +0100)]
Resume development

11 years agoSecond go at 1.6.2 dbus-1.6.2
Simon McVittie [Wed, 27 Jun 2012 16:48:33 +0000 (17:48 +0100)]
Second go at 1.6.2

11 years agoRevise NEWS to not mention --exit-with-x11
Simon McVittie [Wed, 27 Jun 2012 10:33:29 +0000 (11:33 +0100)]
Revise NEWS to not mention --exit-with-x11

11 years agoStill recommend --exit-with-session in documentation, --exit-with-x11 was reverted
Simon McVittie [Wed, 27 Jun 2012 10:32:29 +0000 (11:32 +0100)]
Still recommend --exit-with-session in documentation, --exit-with-x11 was reverted

11 years agoRevert "dbus-launch: add --exit-with-x11 option"
Simon McVittie [Wed, 27 Jun 2012 10:31:22 +0000 (11:31 +0100)]
Revert "dbus-launch: add --exit-with-x11 option"

This reverts commit fcc656d430f53ad62c25e41d7e7bd880cbb726a0.

11 years agoStop release preparation, --exit-with-x11 doesn't work
Simon McVittie [Mon, 25 Jun 2012 19:54:56 +0000 (20:54 +0100)]
Stop release preparation, --exit-with-x11 doesn't work

11 years agoPrepare 1.6.2
Simon McVittie [Mon, 25 Jun 2012 14:27:05 +0000 (15:27 +0100)]
Prepare 1.6.2

11 years agoCreate /var/lib/dbus explicitly rather than as a side-effect
Simon McVittie [Mon, 25 Jun 2012 12:26:35 +0000 (13:26 +0100)]
Create /var/lib/dbus explicitly rather than as a side-effect

Since Automake 1.11.4, an empty localstatelib_DATA variable will not
create $(localstatelibdir) as a side-effect.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51406
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Lennart Poettering <lennart@poettering.net>
11 years agodbus_pending_call_set_notify: don't leave the connection locked on OOM
Simon McVittie [Mon, 25 Jun 2012 11:20:45 +0000 (12:20 +0100)]
dbus_pending_call_set_notify: don't leave the connection locked on OOM

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51032
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Lennart Poettering <lennart@poettering.net>
11 years agoNEWS
Simon McVittie [Mon, 25 Jun 2012 12:16:53 +0000 (13:16 +0100)]
NEWS

11 years agoEnable Automake maintainer mode by default, but let distros disable it
Simon McVittie [Fri, 10 Feb 2012 12:09:48 +0000 (12:09 +0000)]
Enable Automake maintainer mode by default, but let distros disable it

See http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/
for more information.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=34671
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoSet configure defaults from --enable-developer, not Automake maintainer mode
Simon McVittie [Mon, 25 Jun 2012 10:55:22 +0000 (11:55 +0100)]
Set configure defaults from --enable-developer, not Automake maintainer mode

Automake maintainer mode isn't about whether you're a maintainer or not
(although its name would suggest that), it's about whether files that are
normally distributed in the tarball get regenerated. As such, it's
not really appropriate to use it to drive defaults for things like
assertions and extra test code.

The desired effect is that developers building from git normally get
tests and assertions, while distribution packagers don't.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=34671
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Colin Walters <walters@verbum.org>
11 years agoadditional NEWS: spec 0.20, WiP
Simon McVittie [Fri, 15 Jun 2012 15:18:02 +0000 (16:18 +0100)]
additional NEWS: spec 0.20, WiP

11 years agoMerge branch 'dbus-1.6'
Simon McVittie [Fri, 15 Jun 2012 15:03:49 +0000 (16:03 +0100)]
Merge branch 'dbus-1.6'

11 years agoNEWS
Simon McVittie [Fri, 15 Jun 2012 15:03:39 +0000 (16:03 +0100)]
NEWS

11 years agoOn Unix, link libdbus to a platform-specific threading library
Simon McVittie [Mon, 12 Mar 2012 15:40:30 +0000 (15:40 +0000)]
On Unix, link libdbus to a platform-specific threading library

On Linux, this is libpthread; on other Unixes, in principle it might be
called libpthreads or libthreads or something.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=47237
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>