summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bus/session.conf.in3
-rw-r--r--cmake/CMakeLists.txt4
-rw-r--r--cmake/config.h.cmake2
-rw-r--r--configure.ac11
-rw-r--r--dbus/dbus-message.c1
-rw-r--r--dbus/dbus-sysdeps.h8
6 files changed, 11 insertions, 18 deletions
diff --git a/bus/session.conf.in b/bus/session.conf.in
index 74d9d1fd..d4730363 100644
--- a/bus/session.conf.in
+++ b/bus/session.conf.in
@@ -49,7 +49,8 @@
<limit name="max_outgoing_bytes">1000000000</limit>
<limit name="max_outgoing_unix_fds">250000000</limit>
<limit name="max_message_size">1000000000</limit>
- <limit name="max_message_unix_fds">@DEFAULT_MESSAGE_UNIX_FDS@</limit>
+ <!-- We do not override max_message_unix_fds here since the in-kernel
+ limit is also relatively low -->
<limit name="service_start_timeout">120000</limit>
<limit name="auth_timeout">240000</limit>
<limit name="max_completed_connections">100000</limit>
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index b7c25299..c767c171 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -417,10 +417,6 @@ endif (WIN32)
set (DBUS_USER )
-# In Autotools this has a different default on QNX, but there seems little
-# point in replicating that here; if you're on an unusual Unix, use Autotools.
-set (DEFAULT_MESSAGE_UNIX_FDS 1024)
-
# This won't work on Windows. It's not meant to - the system bus is
# meaningless on Windows anyway.
#
diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake
index bd4cd444..eaec1e98 100644
--- a/cmake/config.h.cmake
+++ b/cmake/config.h.cmake
@@ -82,8 +82,6 @@
# define DBUS_ENABLE_X11_AUTOLAUNCH 1
#endif
-#define DBUS_DEFAULT_MESSAGE_UNIX_FDS @DEFAULT_MESSAGE_UNIX_FDS@
-
#define _DBUS_VA_COPY_ASSIGN(a1,a2) { a1 = a2; }
#cmakedefine DBUS_VA_COPY_FUNC
diff --git a/configure.ac b/configure.ac
index c41426f6..8a530b29 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1242,17 +1242,6 @@ if test x$with_valgrind != xno; then
AC_DEFINE([WITH_VALGRIND], [1], [Define to add Valgrind instrumentation])
fi
-# Determine maximum number of Unix fds which may be passed
-AS_CASE([$host_os],
- [*qnx*],
- [DEFAULT_MESSAGE_UNIX_FDS=256],
- [*],
- [DEFAULT_MESSAGE_UNIX_FDS=1024])
-AC_DEFINE_UNQUOTED([DBUS_DEFAULT_MESSAGE_UNIX_FDS],
- [$DEFAULT_MESSAGE_UNIX_FDS],
- [Default for dbus_connection_get_max_message_unix_fds()])
-AC_SUBST([DEFAULT_MESSAGE_UNIX_FDS])
-
#### Set up final flags
LIBDBUS_LIBS="$THREAD_LIBS $NETWORK_libs"
AC_SUBST([LIBDBUS_LIBS])
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c
index 78df7558..f4787b06 100644
--- a/dbus/dbus-message.c
+++ b/dbus/dbus-message.c
@@ -35,6 +35,7 @@
#include "dbus-list.h"
#include "dbus-threads-internal.h"
#ifdef HAVE_UNIX_FD_PASSING
+#include "dbus-sysdeps.h"
#include "dbus-sysdeps-unix.h"
#endif
diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
index 21033ebf..47ba2f43 100644
--- a/dbus/dbus-sysdeps.h
+++ b/dbus/dbus-sysdeps.h
@@ -558,6 +558,14 @@ void _dbus_request_file_descriptor_limit (unsigned int limit);
const char *
_dbus_replace_install_prefix (const char *configure_time_path);
+/* Do not set this too high: it is a denial-of-service risk.
+ * See <https://bugs.freedesktop.org/show_bug.cgi?id=82820>
+ *
+ * (This needs to be in the non-Unix-specific header so that
+ * the config-parser can use it.)
+ */
+#define DBUS_DEFAULT_MESSAGE_UNIX_FDS 16
+
/** @} */
DBUS_END_DECLS