Commit graph

4532 commits

Author SHA1 Message Date
Simon McVittie
8e48532d24 test/dbus-daemon: Unset DBUS_SESSION_BUS_ADDRESS
When we intend to exercise the default behaviour in the absence of
DBUS_SESSION_BUS_ADDRESS (but with an XDG_RUNTIME_DIR present), it would
help if we unset DBUS_SESSION_BUS_ADDRESS. Otherwise we'll just connect
to the real session bus, if there is one.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101698
2017-07-07 10:54:01 +01:00
Simon McVittie
68304a47c0 Update NEWS for 1.10 branch
Signed-off-by: Simon McVittie <smcv@collabora.com>
2017-07-06 18:43:23 +01:00
Simon McVittie
b2fbffb027 name-test: Backport dbus-run-session wrapper from git master
test-pending-call-disconnected relies on being run under a session bus.
On master, the TESTS in this directory all get that treatment, but
in dbus-1.10 they do not. This caused test-pending-call-disconnected
to fail in minimal environments like travis-ci where there is no
developer-initiated session bus.

Backport part of commit ec6b220 "name-test: run most C tests directly,
not via run-test.sh" to wrap it in dbus-run-session. This is better
than putting it in run-test.sh because this way, its TAP output is
parsed directly by Automake.

It also has the side benefit of exercising dbus-run-session in the
automated tests.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101698
2017-07-06 18:34:48 +01:00
Simon McVittie
c462a6b395 dbus_message_iter_open_container: Don't leak signature on failure
If we run out of memory while calling _dbus_type_writer_recurse()
(which is impossible for most contained types, but can happen for
structs and dict-entries), then the memory we allocated in the call to
_dbus_message_iter_open_signature() will still be allocated, and we
have to free it in order to return to the state of the world prior to
calling open_container().

One might reasonably worry that this change can break callers that use
this (incorrect) pattern:

    if (!dbus_message_iter_open_container (outer, ..., inner))
      {
        dbus_message_iter_abandon_container (outer, inner);
        goto fail;
      }
    /* now we know inner is open, and we must close it later */

However, testing that pattern with _dbus_test_oom_handling()
demonstrates that it already dies with a DBusString assertion failure
even before this commit.

This is all concerningly fragile, and I think the next step should be
to zero out DBusMessageIter instances when they are invalidated, so
that a "double-free" is always detected.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101568
(cherry picked from commit 031aa2ceb3)
2017-07-05 13:57:31 +01:00
Simon McVittie
0907c2b9fd dbus_message_iter_append_basic: Don't leak signature if appending fd fails
Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101568
(cherry picked from commit 8384e79551)
2017-07-05 13:56:47 +01:00
Simon McVittie
4157b6a191 dbus_message_append_args_valist: Don't leak memory on inappropriate type
Found by source code inspection while trying to debug an unrelated
leak.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101568
(cherry picked from commit 6b7bdb105b)
2017-07-05 13:56:24 +01:00
Simon McVittie
b1abd7ad07 Start on 1.10.22
Signed-off-by: Simon McVittie <smcv@debian.org>
2017-06-29 23:25:02 +01:00
Simon McVittie
c8402b45c3 1.10.20
Signed-off-by: Simon McVittie <smcv@collabora.com>
2017-06-29 18:46:36 +01:00
Simon McVittie
e570dfd926 Update NEWS for 1.10.x branch
Signed-off-by: Simon McVittie <smcv@collabora.com>
2017-06-27 19:26:59 +01:00
Simon McVittie
f74cba267b transport: Don't pile up errors for semicolon-separated components
If we somehow get an autolaunch address with multiple
semicolon-separated components, and one of them fails, then we will
hit an assertion failure when we try the next one.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101257
(cherry picked from commit ecdcb86bff)
2017-06-27 19:13:40 +01:00
Simon McVittie
a6a1fc26c7 Doxyfile.in: do not put timestamps in HTML
The build timestamp is not particularly useful (the version number of
the package is already present in the HTML), and it prevents the build
from being reproducible. See <https://reproducible-builds.org/> for more
information.

Signed-off-by: Simon McVittie <smcv@debian.org>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100692
(cherry picked from commit 0310ead002)
2017-06-27 19:10:19 +01:00
Shin-ichi MORITA
ad17155f26 Fix missing dbus_message_unref() in error reply path
The error message was leaked when blocking on a pending call after
the connection was disconnected.

Reviewed-by: Philip Withnall <withnall@endlessm.com>
[smcv: re-word commit message]
Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101481
2017-06-27 18:20:52 +01:00
Simon McVittie
1cd23aa0c9 HACKING: Update git URIs to sync up with cgit.freedesktop.org
git.freedesktop.org no longer offers anonymous checkouts; that facility
moved to anongit.freedesktop.org.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100715
2017-04-19 11:44:52 +01:00
Simon McVittie
3f14630698 Start changelog for 1.10.20 2017-04-07 18:57:14 +01:00
Simon McVittie
73961ee58c 1.10.18
Signed-off-by: Simon McVittie <smcv@debian.org>
2017-04-05 16:24:12 +01:00
Philip Withnall
bb43433b63 test: Fix a couple of memory leaks in test-corrupt
Spotted while testing bug #100568.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100568
2017-04-05 16:22:52 +01:00
Philip Withnall
9e864c2e4b test: Fix reading off the end of an array in test-corrupt
One level of pointer indirection too many when passing the arguments to
dbus_message_append_args().

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100568
Signed-off-by: Philip Withnall <withnall@endlessm.com>
Reviewed-by: Simon McVittie <smcv@collabora.com>
2017-04-05 16:22:22 +01:00
Simon McVittie
d7ff4e5b1e refer to Debian bug in NEWS 2017-03-22 10:01:53 +00:00
Simon McVittie
82826c1633 NEWS 2017-03-22 09:35:17 +00:00
Laurent Bigonville
4af0c1f26e Initialize SELinux and Apparmor after capabilities are set
avc_init() in the SELinux code path is creating a new thread, we need to
set to capabilities before it gets created so it has the permission to
send audit messages.

It also make more sense to open the audit netlink before the different
logging callbacks are set.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92832
[smcv: add comments explaining why initialization must happen in this
specific order]
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857660
Reviewed-by: Stephen Smalley <sds@tycho.nsa.gov>

(cherry picked from commit a3a5935a0a)
2017-03-22 09:32:34 +00:00
Simon McVittie
fea69f0661 NEWS: fix typo
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2017-02-16 15:57:46 +00:00
Simon McVittie
cb538cc273 Start 1.10.18
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2017-02-16 15:57:30 +00:00
Simon McVittie
8b582cb10d Prepare 1.10.16 2017-02-16 14:12:01 +00:00
Simon McVittie
1488f02d9e activation test: Fix time-of-check/time-of-use bug waiting to happen
Creating a directory is atomic, stat'ing it to see whether to remove
it is very much not.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=99828
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
2017-02-16 13:28:49 +00:00
Simon McVittie
be51bfe915 Change _dbus_create_directory to fail for existing directories
If we don't trap EEXIST and its Windows equivalent, we are unable to
detect the situation where we create an ostensibly unique
subdirectory in a shared /tmp, but an attacker has already created it.
This affects dbus-nonce (the nonce-tcp transport) and the activation
reload test.

Add a new _dbus_ensure_directory() for the one case where we want it to
succeed even on EEXIST: the DBUS_COOKIE_SHA1 keyring, which we know
we are creating in our own trusted "official" $HOME. In the new
transient service support on Bug #99825, ensure_owned_directory()
would need the same treatment.

We are not treating this as a serious security problem, because the
nonce-tcp transport is rarely enabled on Unix and there are multiple
mitigations.

The nonce-tcp transport creates a new unique file with O_EXCL and 0600
(private to user) permissions, then overwrites the requested filename
via atomic-overwrite, so the worst that could happen there is that an
attacker could place a symbolic link matching the name of a directory
we are going to create, causing a dbus-daemon configured for nonce-tcp
to traverse the symlink and atomically overwrite a file named "nonce"
in a directory of the attacker's choice, with new random contents that
are not known to the attacker. This seems unlikely to be exploitable
for anything worse than denial of service in practice. In mainline
Linux since 3.6, this attack is also defeated by the
fs.protected_symlinks sysctl, which many distributions enable by default.

The activation reload test suffers from a classic symlink attack
due to time-of-check/time-of-use errors in its implementation, but as
part of the developer-only "embedded tests" that are only intended
to be run on a trusted machine, it is not treated as security-sensitive.
That code path will be fixed in a subsequent commit.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=99828
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
2017-02-16 13:28:15 +00:00
Simon McVittie
bca5a8465a Travis-CI: Get new autoconf-archive from Ubuntu
Hopefully this has better uptime than snapshot.debian.org, which is
really an archival service rather than a production component.

This particular autoconf-archive version was in Ubuntu 16.10, so it
should stay around for a while.

Signed-off-by: Simon McVittie <smcv@debian.org>
(cherry picked from commit 9935a5b7d1)
2017-02-16 13:28:11 +00:00
Simon McVittie
dff8e78a05 Update NEWS for 1.10 branch 2017-02-01 11:10:26 +00:00
Simon McVittie
ab1973ed15 ci-install, ci-build: add brief documentation for parameter variables
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 13:05:14 +00:00
Simon McVittie
e7c048f36a ci-install.sh: make ci_in_docker follow the yes/no convention too
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:47:49 +00:00
Simon McVittie
367526aff6 travis-ci: Add and use infrastructure to build and test in Docker
Debian stable, Debian testing and Ubuntu LTS provide a reasonable
spectrum of old and new distributions. I'm only doing one build on
each to avoid a combinatorial explosion of options.

The Docker images don't have any deb-src apt sources set up, so don't
use `apt-get build-dep`; just include dependencies manually.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:37:48 +00:00
Simon McVittie
c807f383a9 travis-ci: add an install script instead of open-coding it in .travis.yml
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
[smcv: move comment to install script as suggested]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:37:27 +00:00
Simon McVittie
854ef13dfb travis-ci: introduce maybe_fail_tests() to make test failure more obvious
Taken from the version I added to OSTree.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:36:41 +00:00
Simon McVittie
8dc928d5ea travis-ci: run in bash, with the "unofficial strict mode"
set -u forces us to set all variables that we use (for example with the
${foo:=bar} syntax to take an existing value or set a default), or use the
${foo:-bar} syntax to make it explicit that the variable might be unset.

set -o pipefail (which is a bash feature) detects failure in non-last
elements of a pipeline.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:36:38 +00:00
Simon McVittie
0dd271a5c2 travis-ci: consistently use yes/no instead of yes/empty
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:36:34 +00:00
Simon McVittie
29d5dd06d1 travis-ci: consistently use ci_* for parameter variables
This aligns it with the more generic script based on this one that
I sent to OSTree.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:36:27 +00:00
Simon McVittie
f6eb7c8afb ci-build: retab with 4-space indentation
This realigns it with the script loosely based on this one that I
sent to OSTree.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:36:23 +00:00
Simon McVittie
300d9a3c96 travis-ci: add an explicit copyright/license statement
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98889
2016-11-29 12:35:34 +00:00
Simon McVittie
e521883d17 Rename distro-style CI build from "release" to "production"
This avoids confusion with the meaning of "release" used by
AX_IS_RELEASE. AX_IS_RELEASE is about facts about the source tree,
namely the distinction between releases (tags) and random snapshots.
The build variants in .travis.yml are about facts about the build
being done, namely the distinction between production and
debug/developer builds.

Production builds are sometimes referred to as "release builds",
for example in typical CMake and MSVC build environments, but a
different term seems better here.

Signed-off-by: Simon McVittie <smcv@debian.org>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=97357
[smcv: cherry-picked from master to dbus-1.10 to get the Travis-CI setup
consistent between the two branches]
2016-11-29 12:35:25 +00:00
Simon McVittie
de73ae6567 Update autoconf-archive, and use snapshot.debian.org
This way the link won't expire in future.

Signed-off-by: Simon McVittie <smcv@debian.org>
[smcv: cherry-picked from master to dbus-1.10 to get the Travis-CI setup
consistent between the two branches; it is not strictly needed on dbus-1.10]
2016-11-29 12:35:18 +00:00
Simon McVittie
902998869f Travis-CI: fetch a newer autoconf-archive from Debian
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
[smcv: cherry-picked from master to dbus-1.10 to get the Travis-CI setup
consistent between the two branches; it is not strictly needed on dbus-1.10]
2016-11-29 12:35:14 +00:00
Simon McVittie
d9f3053c94 Travis-CI: install new autoconf-archive build-dependency
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
[smcv: cherry-picked from master to dbus-1.10 to get the Travis-CI setup
consistent between the two branches; it is not strictly needed on dbus-1.10]
2016-11-29 12:34:33 +00:00
Simon McVittie
1be40f50e9 Start developing 1.10.16
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2016-11-28 20:23:14 +00:00
Simon McVittie
449d6b313d dbus 1.10.14
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2016-11-28 18:48:37 +00:00
Simon McVittie
fa62fc296d Suppress -Wmisleading-indentation for this stable branch
We are not going to fix the inconsistent tab/space indentation in a
stable branch just to keep gcc happy.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2016-11-28 18:48:37 +00:00
Simon McVittie
3f407671ec Make uid 0 immune to pending_fd_timeout limit
This is a workaround for
<https://bugs.freedesktop.org/show_bug.cgi?id=95263>. If a service
sends a file descriptor sufficiently frequently that its queue of
messages never goes down to 0 fds pending, then it will eventually be
disconnected. logind is one such service.

We do not currently have a good solution for this: the proposed
patches either don't work, or reintroduce a denial of service
security vulnerability (CVE-2014-3637). Neither seems desirable.
However, we can avoid the worst symptoms by trusting uid 0 not to be
malicious.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=95263
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1591411
Reviewed-by: Łukasz Zemczak
Tested-by: Ivan Kozik
Tested-by: Finn Herpich
Tested-by: autostatic
Tested-by: Ben Parafina
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
(cherry picked from commit d5fae1db78)
[smcv: omit the test/dbus-daemon.c part, which does not apply unless
a363822f5f is also applied]
2016-11-28 18:24:42 +00:00
Simon McVittie
8551c68d96 Log to syslog when pending_fd_timeout is exceeded
This is either a denial-of-service attempt, a pathological performance
problem or a dbus-daemon bug. Sysadmins should be told about any of
these.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=86442
[smcv: add units to timeout: it is in milliseconds]
Signed-off-by: Simon McVittie <smcv@debian.org>

(cherry picked from commit 05cb619f0a)
2016-11-28 18:23:57 +00:00
Simon McVittie
c4640c6fac Install mingw build-dependencies in a different order
This avoids installing the build-dependencies for dbus and its tests,
then uninstalling them all because they rely on libraries whose versions
are older than the ones needed by wine:i386 (and apparently apt prefers
to remove those libraries rather than upgrade them). Doing it this way
round seems to convince apt to do the right thing.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2016-11-22 21:37:13 +00:00
Simon McVittie
07ec3ecf24 ci-build: run our copy of config.guess
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2016-11-22 21:07:48 +00:00
Simon McVittie
97802948f5 NEWS
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2016-11-22 20:06:36 +00:00
Simon McVittie
5a1dcca8bf Don't test X11 autolaunching if it was disabled at compile time
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98665
2016-11-22 19:27:43 +00:00