summaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)AuthorFilesLines
2015-02-04Imported Upstream version 1.8.16upstream/1.8.16upstreamSimon McVittie1-2/+2
2015-01-02Imported Upstream version 1.8.14upstream/1.8.14Simon McVittie1-2/+2
2014-11-24Imported Upstream version 1.8.12upstream/1.8.12Simon McVittie1-2/+2
2014-11-06Embargoed security release for MondaySimon McVittie1-2/+2
2014-09-161.8.9Simon McVittie1-1/+1
2014-09-15Prepare 1.8.8 (embargoed until tomorrow)dbus-1.8.8Simon McVittie1-2/+2
2014-09-15config: change DEFAULT_MESSAGE_UNIX_FDS to 16Simon McVittie1-11/+0
This addresses CVE-2014-3636. Based on a patch by Alban Crequy. Now that it's the same on all platforms, there's little point in it being set by configure/cmake. This change fixes two distinct denials of service: fd.o#82820, part A ------------------ Before this patch, the system bus had the following default configuration: - max_connections_per_user: 256 - DBUS_DEFAULT_MESSAGE_UNIX_FDS: usually 1024 (or 256 on QNX, see fd.o#61176) as defined by configure.ac - max_incoming_unix_fds: DBUS_DEFAULT_MESSAGE_UNIX_FDS*4 = usually 4096 - max_outgoing_unix_fds: DBUS_DEFAULT_MESSAGE_UNIX_FDS*4 = usually 4096 - max_message_unix_fds: DBUS_DEFAULT_MESSAGE_UNIX_FDS = usually 1024 This means that a single user could create 256 connections and transmit 256*4096 = 1048576 file descriptors. The file descriptors stay attached to the dbus-daemon process while they are in the message loader, in the outgoing queue or waiting to be dispatched before D-Bus activation. dbus-daemon is usually limited to 65536 file descriptors (ulimit -n). If the limit is reached and dbus-daemon needs to receive a message with a file descriptor attached, this is signalled by recvfrom with the flag MSG_CTRUNC. Dbus-daemon cannot recover from that error because the kernel does not have any API to retrieve a file descriptor which has been discarded with MSG_CTRUNC. Therefore, it closes the connection of the sender. This is not necessarily the connection which generated the most file descriptors so it can lead to denial-of-service attacks. In order to prevent DoS issues, this patch reduces DEFAULT_MESSAGE_UNIX_FDS to 16: max_connections_per_user * max_incoming_unix_fds = 256 * 64 = 16384 This is less than the usual "ulimit -n" (65536) with a good margin to accomodate the other sources of file descriptors (stdin/stdout/stderr, listening sockets, message loader, etc.). Distributors on non-Linux may need to configure a smaller limit in system.conf, if their limit on the number of fds is smaller than Linux's. fd.o#82820, part B ------------------ On Linux, it's not possible to send more than 253 fds in a single sendmsg() call: sendmsg() would return -EINVAL. #define SCM_MAX_FD 253 SCM_MAX_FD changed value during Linux history: - it used to be (OPEN_MAX-1) - commit c09edd6eb (Jul 2007) changed it to 255 - commit bba14de98 (Nov 2010) changed it to 253 Libdbus always sends all of a message's fds, and the beginning of the message itself, in a single sendmsg() call. Combining these two, a malicious sender could split a message across two or more sendmsg() calls to construct a composite message with 254 or more fds. When dbus-daemon attempted to relay that message to its recipient in a single sendmsg() call, it would receive EINVAL, interpret that as a fatal socket error and disconnect the recipient, resulting in denial of service. This is fixed by keeping max_message_unix_fds <= SCM_MAX_FD. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=82820 Reviewed-by: Alban Crequy <alban.crequy@collabora.co.uk>
2014-09-15On Linux, call prctl to disable core dumpsSimon McVittie1-0/+4
Whenever I forget to turn off corekeeper, the regression tests take ages to record all test-segfault's crashes. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=83772 Reviewed-by: Alban Crequy <alban.crequy@collabora.co.uk>
2014-09-12enable build support without systemd compatibility librariesUmut Tezduyar Lindskog1-4/+7
systemd 209 merged all the libraries to libsystemd. Old libraries can still be enabled with --enable-compat-libs switch in systemd but this increases the binary size. Implement a fallback library check in case compat libraries dont exist. [Fixed underquoting; switched priority so we try libsystemd first -smcv] Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2014-07-02start 1.8.7Simon McVittie1-1/+1
2014-06-30Prepare 1.8.6 in advancedbus-1.8.6Simon McVittie1-2/+2
2014-06-10reset versionSimon McVittie1-1/+1
2014-06-05Prepare embargoed security releasedbus-1.8.4Simon McVittie1-2/+2
2014-04-30development versionSimon McVittie1-1/+1
2014-04-301.8.2dbus-1.8.2Simon McVittie1-2/+2
2014-01-27Fix of 'dbus-daemon can only handle 64 simultaneous connections on Windows'.Cristian Onet1-0/+3
[Slightly modified by -rh] Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71297 Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2014-01-201.8.1Simon McVittie1-1/+1
2014-01-20D-Bus 1.8.0dbus-1.8.0Simon McVittie1-2/+2
2014-01-06start 1.7.11Simon McVittie1-1/+1
2014-01-061.7.10Simon McVittie1-1/+1
2014-01-06Do not install systemd unit files if build without systemdChengwei Yang1-1/+1
If dbus buid without systemd (--disable-systemd or no systemd libs available when building), we expect not to install dbus systemd unit files because they're only for systemd environment. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71818 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-11-27Remove duplicate checking for pkg-configChengwei Yang1-2/+0
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71985 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-11-01start on 1.7.10Simon McVittie1-1/+1
2013-11-011.7.8Simon McVittie1-2/+2
2013-11-01Handle activated child stdout/stderr correctly in systemd environmentChengwei Yang1-1/+1
In systemd environment, dbus-daemon will run as no-fork mode since this is the recommended practice of systemd. In that scenario, child activated by dbus-daemon will inherit dbus-daemon standard streams, includes stdin/stdout/stderr. stdin will be redirected to /dev/null by systemd and stdout/stderr will be catched by systemd log subsystem. Since the child inherit stdout/stderr from dbus-daemon, so from systemd journal log, the child log output will be identified with dbus-daemon identifier. So it's a little confusing. This patch redirects the child stdout/stderr to systemd journal stream, and with its owned service name as identifier. However, thing not fixed perfectly due to the socket ucred of the child is owned by dbus-daemon, so the pid isn't the real pid of the chile. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68559 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-10-10Use TEST_LISTEN in incoming-listen.conf.in instead of unix only hardcoded ↵Ralf Habacker1-0/+1
address Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68506 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-10-09start 1.7.8Simon McVittie1-1/+1
2013-10-09D-Bus 1.7.6, spec 0.22Simon McVittie1-1/+1
2013-10-08Unify the way to find dbus-daemon test binaryChengwei Yang1-4/+0
There are two ways to find the dbus-daemon for testing. The first one is defined as string at compile stage and the second one is export it from test environment. The first way has limitation that after defined, it's static string, so it's impossible to run installable check. So let's unify to the second way. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37849 [added missing "}" -smcv] Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-10-08Add support for configuring --with-valgrind=autoSimon McVittie1-0/+4
This is the configuration I'd like to use for the "debug build" of dbus on Debian - if we use --with-valgrind=yes, we have to hard-code knowledge of which architectures do and don't have Valgrind in two places instead of just one. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=56925 Reviewed-by: Chengwei Yang <chengwei.yang@intel.com>
2013-09-16Remove support for platforms with no 64-bit integer typeSimon McVittie1-37/+1
This has been a soft requirement since 1.5.0; anyone on such platforms would have had to configure --without-64-bit, provoking a warning that instructed them to report a D-Bus bug with details of their platform. Nobody has done so, so if anyone still lacks a 64-bit integer type, they're on their own. (Also, I tried the build with --without-64-bit and it's full of fatal compiler warnings, so it's not clear that we're actually losing anything by removing this "feature".) Bug: https://bugs.freedesktop.org/show_bug.cgi?id=65429 Reviewed-by: Chengwei Yang <chengwei.yang@intel.com>
2013-09-16dbus-sysdeps-win: don't include wspiapi.hSimon McVittie1-2/+0
This block provoked a warning on mingw-w64 because we were redefining _inline. According to Ralf's research, it was introduced in 452ff68a: Windows 2000 doesn't have getaddrinfo and related functions in ws2tcpip.h, but does have a shim implementation in wspiapi.h. At the time of 452ff68a, mingw32 didn't have wspiapi.h, so it's unclear why there was a __GNUC__ code path here. The "#define _inline" on that code path looks likely to be some sort of workaround for a faulty version of wspiapi.h? Current mingw-w64 does have wspiapi.h, so we enter the __GNUC__ code path and get the redefinition. dbus no longer supports Windows 2000, so we no longer need wspiapi.h at all, and can rely on XP or later. (Ralf's policy is to only support versions of Windows that are still supported by Microsoft, and Windows 2000 reached the end of its life-cycle in 2010.) Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68852 Reviewed-by: Ralf Habacker
2013-09-13Make userdb cache as a built-in featureChengwei Yang1-6/+0
The disable-userdb-cache code path is never been fine tested and you could expect an extramely slow bus if you did that. And there are known bugs on fd.o if build without userdb cache. So to prevent user from using bus without userdb cache, it changed to a built-in feature, no longer optional now. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=66947 Bug: https://bugs.freedesktop.org/show_bug.cgi?id=15589 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-09-13Use test binaries in build dir to do testChengwei Yang1-0/+3
When do autolaunch testing, libdbus will try to start dbus-launch in installed direcotry, if fail then fall back to dbus-launch in $PATH. dbus-launch does a relative better thing to start dbus-daemon in build directory, however, in most of case, the build $prefix is different from the real prefix where dbus-daemon installed. So dbus-daemon will fail to start due to can't find its config file. And then dbus-launch will fall back to finally the installed dbus-daemon. This patch fix this behavior and will start dbus-launch and dbus-daemon in build directory in test environment. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37849
2013-09-03Tests: allow dbus-glib to be replaced with use of libdbus-internalSimon McVittie1-10/+21
We only use dbus-glib for its main loop; within dbus, DBusLoop is available as an alternative, although it isn't thread-safe and isn't public API. For tests that otherwise only use libdbus public API, it's desirable to be able to avoid DBusLoop, so we can run them against an installed libdbus as an integration test. However, if we don't have dbus-glib, we're going to have to use an in-tree main loop, which might as well be DBusLoop. The major disadvantage of using dbus-glib is that it isn't safe to link both dbus-1 and dbus-internal at the same time. This is awkward for a future test case that wants to use _dbus_getsid() in dbus-daemon.c, but only on Windows (fd.o #54445). If we use the same API wrapper around both dbus-glib and DBusLoop, we can compile that test against dbus-glib or against DBusLoop, depending on the platform. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68852 Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
2013-08-22Ignore more unused staff if build with tests but without assertsChengwei Yang1-0/+5
https://bugs.freedesktop.org/show_bug.cgi?id=66069 Signed-off-by: Chengwei Yang <chengwei.yang@intel.com> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-06-28tests to embedded tests: replaced in automake filesChengwei Yang1-5/+1
Signed-off-by: Chengwei Yang <chengwei.yang@intel.com> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=66291
2013-06-28dir-watch: remove dnotify backendChengwei Yang1-20/+0
dnotify as a dir watch backend is broken since Jan 2010 (almost 3.5 years). According to fd.o: #33001, it's no harm to remove dnotify from this project. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33001 Signed-off-by: Chengwei Yang <chengwei.yang@intel.com> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-06-25Explicitly define macros to get less confusing conditionsChengwei Yang1-0/+9
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=65990 Signed-off-by: Chengwei Yang <chengwei.yang@intel.com> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-06-13Start on 1.7.5, add release name for 1.7.4Simon McVittie1-1/+1
2013-06-12Prepare 1.7.4 for tomorrowSimon McVittie1-2/+2
2013-06-06Fix a typo: enable_x11 -> have_x11Chengwei Yang1-1/+1
From git history, enable_x11 was used to track have_x11, but it's useless now. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=65443 Signed-off-by: Chengwei Yang <chengwei.yang@intel.com> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-06-06XML: hard depends on expat and delete libxmlChengwei Yang1-47/+5
[The libxml code path has been broken for at least 2.5 years, and Expat is tiny, so there seems no point in supporting both. -smcv] Bug: https://bugs.freedesktop.org/show_bug.cgi?id=20253 Signed-off-by: Chengwei Yang <chengwei.yang@intel.com> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-06-05Put dbus-run-session through doclifter and adjust to match other man pagesSimon McVittie1-0/+1
2013-05-02start 1.7.4 developmentSimon McVittie1-1/+1
2013-04-25prepare version 1.7.2 and spec 0.21Simon McVittie1-2/+2
2013-04-18Rename default_message_unix_fds to DEFAULT_MESSAGE_UNIX_FDSSimon McVittie1-4/+4
As Ralf pointed out, we usually use upper-case when substituting variables (apart from "somethingdir", which Autoconf conventionally makes lower-case for some reason). Bug: https://bugs.freedesktop.org/show_bug.cgi?id=63682 Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
2013-04-11Set default maximum number of Unix fds according to OSMatt Fischer1-0/+11
QNX has an arbitrary limit to the number of file descriptors which may be passed in a message, which is smaller than the current default. This patch therefore changes the default from a hardcoded constant to a macro, which is determined at configure time by looking at the host operating system. [This reduces the limit from 4096 (session)/1024 (system) to 128 fds per message on QNX, and 1024 fds per message on other operating systems. I think the reduced session bus limit on other OSs is a reasonable change too, given that the default hard/soft ulimits in Linux are only 4096/1024 fds per process. -smcv] Bug: https://bugs.freedesktop.org/show_bug.cgi?id=61176 Reviewed-by: Simon McVittie <simon.mcvittie.collabora.co.uk>
2013-04-05Merge branch 'dbus-1.6'Simon McVittie1-1/+1
Conflicts: NEWS configure.ac
2013-04-05Allow use of GLib 2.32 functionality, which we do conditionallySimon McVittie1-1/+1