Commit graph

3387 commits

Author SHA1 Message Date
Colin Walters
23fe78ceef 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>
2012-09-27 21:10:28 -04:00
Simon McVittie
4d0a69027e Merge branch 'dbus-1.6' 2012-09-03 10:20:01 +01:00
Simon McVittie
6dcef0c8f0 NEWS 2012-09-03 10:19:29 +01:00
Brad Smith
712f148205 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
2012-09-03 10:12:02 +01:00
Simon McVittie
8d012ff68d NEWS for #38201 2012-08-13 20:15:19 +01:00
Simon McVittie
d353e73d35 Merge branch 'dbus-1.6', rejecting reversion of #38201 2012-08-13 20:14:16 +01:00
Simon McVittie
dddedfa27d Revert "cmake: use the same default system bus address as for autotools"
This reverts commit 05b0b9e65b.
2012-08-13 20:13:16 +01:00
Simon McVittie
627cdde0eb Revert "Split DBUS_SESSION_BUS_DEFAULT_ADDRESS into listen, connect addresses and set better defaults"
This reverts commit b5d36dc27d.

On second thoughts, this is too big a change for a stable branch.
2012-08-13 20:12:59 +01:00
Simon McVittie
1dd0ff6d5b Merge branch 'dbus-1.6' 2012-08-13 20:02:11 +01:00
Simon McVittie
b5d36dc27d 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>
2012-08-13 19:57:13 +01:00
Simon McVittie
05b0b9e65b 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>
2012-08-13 19:51:42 +01:00
Simon McVittie
e33c318c13 NEWS 2012-08-09 12:42:52 +01:00
Simon McVittie
0786e46318 Merge branch 'master' of git+ssh://git.freedesktop.org/git/dbus/dbus 2012-08-09 12:37:25 +01:00
Simon McVittie
0e0111304e Merge branch 'dbus-1.6'
Conflicts:
	NEWS
	configure.ac
2012-08-09 12:32:32 +01:00
Simon McVittie
9436816175 NEWS 2012-08-09 12:31:48 +01:00
Jonathan Perkin
ed0e9e982e 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
2012-08-09 12:26:06 +01:00
Jonathan Perkin
e98107548c 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
2012-08-09 12:25:02 +01:00
Simon McVittie
15e990d68d 1.6.5 2012-07-18 19:30:23 +01:00
Simon McVittie
93f78602b2 Prepare 1.6.4 release 2012-07-18 18:11:49 +01:00
Wolfgang Baron
2a50cb475b 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
2012-07-18 18:10:07 +01:00
Colin Walters
88f8d44aed 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
2012-07-18 10:19:20 -04:00
Simon McVittie
55024f65a6 Merge branch 'dbus-1.6' 2012-07-03 20:12:16 +01:00
Simon McVittie
a5d4c4aa35 NEWS 2012-07-03 20:12:10 +01:00
Simon McVittie
aef027e946 Merge branch 'dbus-1.6' 2012-07-03 19:21:00 +01:00
Simon McVittie
d8de80969c 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>
2012-07-03 19:03:19 +01:00
Simon McVittie
e5a945507b 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>
2012-07-03 19:02:53 +01:00
Simon McVittie
0c40800505 Merge branch 'dbus-1.6'
Conflicts:
	NEWS
	configure.ac
2012-06-28 16:50:23 +01:00
Simon McVittie
4f6d717197 NEWS 2012-06-28 16:49:01 +01:00
Dave Reisner
b138aa0f94 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>
2012-06-28 16:46:41 +01:00
Simon McVittie
93616f0d37 Resume development 2012-06-27 18:52:53 +01:00
Simon McVittie
564e7fc66f Second go at 1.6.2 2012-06-27 17:48:33 +01:00
Simon McVittie
b54fd09aed Revise NEWS to not mention --exit-with-x11 2012-06-27 11:33:29 +01:00
Simon McVittie
27a7eb41f6 Still recommend --exit-with-session in documentation, --exit-with-x11 was reverted 2012-06-27 11:32:29 +01:00
Simon McVittie
6ec9900bc1 Revert "dbus-launch: add --exit-with-x11 option"
This reverts commit fcc656d430.
2012-06-27 11:31:22 +01:00
Simon McVittie
589ca59b2f Stop release preparation, --exit-with-x11 doesn't work 2012-06-25 20:54:56 +01:00
Simon McVittie
453457904b Prepare 1.6.2 2012-06-25 15:27:05 +01:00
Simon McVittie
e2b3b74512 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>
2012-06-25 15:22:55 +01:00
Simon McVittie
e29efffd88 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>
2012-06-25 15:22:38 +01:00
Simon McVittie
a12e6f3ccf NEWS 2012-06-25 13:59:23 +01:00
Simon McVittie
f51a9648ff 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>
2012-06-25 11:55:26 +01:00
Simon McVittie
e1427a2d66 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>
2012-06-25 11:55:22 +01:00
Simon McVittie
eb2300b593 additional NEWS: spec 0.20, WiP 2012-06-15 16:18:02 +01:00
Simon McVittie
9073e06039 Merge branch 'dbus-1.6' 2012-06-15 16:03:49 +01:00
Simon McVittie
3624e65986 NEWS 2012-06-15 16:03:39 +01:00
Simon McVittie
b47f4c22ee 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>
2012-06-15 14:42:19 +01:00
Simon McVittie
efddba53da When not producing a dynamic library, define DBUS_STATIC_BUILD
When targeting Windows, linking against the static library requires
special effort to turn off DLL import/export processing. We normally
link some things against the dynamic library, but if we're not building
that, we'll have to link everything statically.

Based on patches from 'william' on fd.o #46367.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33973
Tested-by: René Berber <Rene.Berber gmail com>
2012-06-15 14:25:48 +01:00
Simon McVittie
5a100d8c2c Cut minor version down to 255
Entertainingly, bits of libdbus assume that one byte is enough for each
version number component (as API!), and one test even fails if this
isn't true.
2012-06-15 14:11:50 +01:00
Simon McVittie
04cb0a6b0b Describe how to marshal arrays, structs, dict-entries, variants in prose
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38252
2012-06-15 14:03:31 +01:00
Simon McVittie
12f2bd641e Promote the marshalling format to a top-level section
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38252
2012-06-15 14:03:28 +01:00
Simon McVittie
7b81cecae0 Promote the definition of valid object paths and signatures into the type system
Also remove the (double!) requirement that signatures be nul-terminated,
and turn it into a note about the marshalling format.

Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38252
2012-06-15 14:03:21 +01:00