summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Klimaszewski <steev@gentoo.org>2010-02-03 19:34:33 +0000
committerStephen Klimaszewski <steev@gentoo.org>2010-02-03 19:34:33 +0000
commit625b7b7d70f03e571f836d1632253dd3de0ca442 (patch)
treea3eaba67769ea7802df7871ee45219354b16523f /sys-apps/dbus/files
parentAutomated update of use.local.desc (diff)
downloadhistorical-625b7b7d70f03e571f836d1632253dd3de0ca442.tar.gz
historical-625b7b7d70f03e571f836d1632253dd3de0ca442.tar.bz2
historical-625b7b7d70f03e571f836d1632253dd3de0ca442.zip
New upstream release, includes the 2 patches we had applied to 1.2.18.
Package-Manager: portage-2.1.7.17/cvs/Linux i686
Diffstat (limited to 'sys-apps/dbus/files')
-rw-r--r--sys-apps/dbus/files/0001-Fix-inotify-shutdown.patch195
-rw-r--r--sys-apps/dbus/files/0002-Fix-compilation-in-disable-selinux-case.patch182
2 files changed, 0 insertions, 377 deletions
diff --git a/sys-apps/dbus/files/0001-Fix-inotify-shutdown.patch b/sys-apps/dbus/files/0001-Fix-inotify-shutdown.patch
deleted file mode 100644
index 862adb28a413..000000000000
--- a/sys-apps/dbus/files/0001-Fix-inotify-shutdown.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From 90fe96b1875350f86a4a773d4a0a22009950dd4d Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 2 Feb 2010 12:37:17 -0500
-Subject: [PATCH 1/2] Fix inotify shutdown
-
-We were incorrectly passing NULL for a DBusList when the usage expected
-is a pointer to a NULL DBusList pointer. Also during dbus_shutdown
-we need to actually close the inotify fd, and remove our watch.
-
-Move the shutdown handler out of bus.c and into inotify where we
-can do all of this cleanly.
----
- bus/bus.c | 8 ---
- bus/dir-watch-inotify.c | 128 ++++++++++++++++++++++++++++++-----------------
- 2 files changed, 82 insertions(+), 54 deletions(-)
-
-diff --git a/bus/bus.c b/bus/bus.c
-index bfd398e..8150df2 100644
---- a/bus/bus.c
-+++ b/bus/bus.c
-@@ -551,12 +551,6 @@ process_config_postinit (BusContext *context,
- return TRUE;
- }
-
--static void
--bus_shutdown_all_directory_watches (void *data)
--{
-- bus_set_watched_dirs ((BusContext *) data, NULL);
--}
--
- BusContext*
- bus_context_new (const DBusString *config_file,
- ForceForkSetting force_fork,
-@@ -588,8 +582,6 @@ bus_context_new (const DBusString *config_file,
-
- _dbus_generate_uuid (&context->uuid);
-
-- _dbus_register_shutdown_func (bus_shutdown_all_directory_watches, context);
--
- if (!_dbus_string_copy_data (config_file, &context->config_file))
- {
- BUS_SET_OOM (error);
-diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c
-index f87a634..bb71394 100644
---- a/bus/dir-watch-inotify.c
-+++ b/bus/dir-watch-inotify.c
-@@ -92,59 +92,16 @@ _handle_inotify_watch (DBusWatch *passed_watch, unsigned int flags, void *data)
- return TRUE;
- }
-
--static int
--_init_inotify (BusContext *context)
--{
-- int ret = 0;
--
-- if (inotify_fd == -1) {
--#ifdef HAVE_INOTIFY_INIT1
-- inotify_fd = inotify_init1 (IN_CLOEXEC);
--#else
-- inotify_fd = inotify_init ();
--#endif
-- if (inotify_fd <= 0) {
-- _dbus_warn ("Cannot initialize inotify\n");
-- goto out;
-- }
-- loop = bus_context_get_loop (context);
--
-- watch = _dbus_watch_new (inotify_fd, DBUS_WATCH_READABLE, TRUE,
-- _handle_inotify_watch, NULL, NULL);
--
-- if (watch == NULL)
-- {
-- _dbus_warn ("Unable to create inotify watch\n");
-- goto out;
-- }
--
-- if (!_dbus_loop_add_watch (loop, watch, _inotify_watch_callback,
-- NULL, NULL))
-- {
-- _dbus_warn ("Unable to add reload watch to main loop");
-- _dbus_watch_unref (watch);
-- watch = NULL;
-- goto out;
-- }
-- }
-+#include <stdio.h>
-
-- ret = 1;
--
--out:
-- return ret;
--}
--
--void
--bus_set_watched_dirs (BusContext *context, DBusList **directories)
-+static void
-+_set_watched_dirs_internal (DBusList **directories)
- {
- int new_wds[MAX_DIRS_TO_WATCH];
- char *new_dirs[MAX_DIRS_TO_WATCH];
- DBusList *link;
- int i, j, wd;
-
-- if (!_init_inotify (context))
-- goto out;
--
- for (i = 0; i < MAX_DIRS_TO_WATCH; i++)
- {
- new_wds[i] = -1;
-@@ -226,3 +183,82 @@ bus_set_watched_dirs (BusContext *context, DBusList **directories)
-
- out:;
- }
-+
-+#include <stdio.h>
-+static void
-+_shutdown_inotify (void *data)
-+{
-+ DBusList *empty = NULL;
-+
-+ if (inotify_fd == -1)
-+ return;
-+
-+ _set_watched_dirs_internal (&empty);
-+
-+ close (inotify_fd);
-+ inotify_fd = -1;
-+ if (watch != NULL)
-+ {
-+ _dbus_loop_remove_watch (loop, watch, _inotify_watch_callback, NULL);
-+ _dbus_watch_unref (watch);
-+ _dbus_loop_unref (loop);
-+ }
-+ watch = NULL;
-+ loop = NULL;
-+}
-+
-+static int
-+_init_inotify (BusContext *context)
-+{
-+ int ret = 0;
-+
-+ if (inotify_fd == -1)
-+ {
-+#ifdef HAVE_INOTIFY_INIT1
-+ inotify_fd = inotify_init1 (IN_CLOEXEC);
-+#else
-+ inotify_fd = inotify_init ();
-+#endif
-+ if (inotify_fd <= 0)
-+ {
-+ _dbus_warn ("Cannot initialize inotify\n");
-+ goto out;
-+ }
-+ loop = bus_context_get_loop (context);
-+ _dbus_loop_ref (loop);
-+
-+ watch = _dbus_watch_new (inotify_fd, DBUS_WATCH_READABLE, TRUE,
-+ _handle_inotify_watch, NULL, NULL);
-+
-+ if (watch == NULL)
-+ {
-+ _dbus_warn ("Unable to create inotify watch\n");
-+ goto out;
-+ }
-+
-+ if (!_dbus_loop_add_watch (loop, watch, _inotify_watch_callback,
-+ NULL, NULL))
-+ {
-+ _dbus_warn ("Unable to add reload watch to main loop");
-+ _dbus_watch_unref (watch);
-+ watch = NULL;
-+ goto out;
-+ }
-+
-+ _dbus_register_shutdown_func (_shutdown_inotify, NULL);
-+ }
-+
-+ ret = 1;
-+
-+out:
-+ return ret;
-+}
-+
-+void
-+bus_set_watched_dirs (BusContext *context, DBusList **directories)
-+{
-+ if (!_init_inotify (context))
-+ return;
-+
-+ _set_watched_dirs_internal (directories);
-+}
---
-1.6.2.5
-
diff --git a/sys-apps/dbus/files/0002-Fix-compilation-in-disable-selinux-case.patch b/sys-apps/dbus/files/0002-Fix-compilation-in-disable-selinux-case.patch
deleted file mode 100644
index a0f6e47b841e..000000000000
--- a/sys-apps/dbus/files/0002-Fix-compilation-in-disable-selinux-case.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 3dac125d61ebc4f614a1723580043e2f1c811f59 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 2 Feb 2010 14:57:47 -0500
-Subject: [PATCH 2/2] Fix compilation in --disable-selinux case
-
-_dbus_change_to_daemon_user moved into selinux.c for the --with-selinux
-(and audit) case because that's where all of the relevant libcap headers
-were being used. However in the --disable-selinux case this didn't
-compile and wasn't very clean.
-
-If we don't have libaudit, use the legacy direct setgid/setuid bits
-we had before in dbus-sysdeps-util-unix.c.
----
- bus/selinux.c | 35 ++---------------------
- bus/selinux.h | 2 -
- dbus/dbus-sysdeps-util-unix.c | 62 +++++++++++++++++++++++++++++++++++++++++
- dbus/dbus-sysdeps.h | 3 ++
- 4 files changed, 68 insertions(+), 34 deletions(-)
-
-diff --git a/bus/selinux.c b/bus/selinux.c
-index 456723a..e61efc5 100644
---- a/bus/selinux.c
-+++ b/bus/selinux.c
-@@ -1017,6 +1017,8 @@ bus_selinux_shutdown (void)
- #endif /* HAVE_SELINUX */
- }
-
-+/* The !HAVE_LIBAUDIT case lives in dbus-sysdeps-util-unix.c */
-+#ifdef HAVE_LIBAUDIT
- /**
- * Changes the user and group the bus is running as.
- *
-@@ -1042,7 +1044,6 @@ _dbus_change_to_daemon_user (const char *user,
- return FALSE;
- }
-
--#ifdef HAVE_LIBAUDIT
- /* If we were root */
- if (_dbus_geteuid () == 0)
- {
-@@ -1083,38 +1084,8 @@ _dbus_change_to_daemon_user (const char *user,
- return FALSE;
- }
- }
--#else
-- /* setgroups() only works if we are a privileged process,
-- * so we don't return error on failure; the only possible
-- * failure is that we don't have perms to do it.
-- *
-- * not sure this is right, maybe if setuid()
-- * is going to work then setgroups() should also work.
-- */
-- if (setgroups (0, NULL) < 0)
-- _dbus_warn ("Failed to drop supplementary groups: %s\n",
-- _dbus_strerror (errno));
--
-- /* Set GID first, or the setuid may remove our permission
-- * to change the GID
-- */
-- if (setgid (gid) < 0)
-- {
-- dbus_set_error (error, _dbus_error_from_errno (errno),
-- "Failed to set GID to %lu: %s", gid,
-- _dbus_strerror (errno));
-- return FALSE;
-- }
--
-- if (setuid (uid) < 0)
-- {
-- dbus_set_error (error, _dbus_error_from_errno (errno),
-- "Failed to set UID to %lu: %s", uid,
-- _dbus_strerror (errno));
-- return FALSE;
-- }
--#endif /* !HAVE_LIBAUDIT */
-
- return TRUE;
- }
-+#endif
-
-diff --git a/bus/selinux.h b/bus/selinux.h
-index f208fbe..3bab36d 100644
---- a/bus/selinux.h
-+++ b/bus/selinux.h
-@@ -68,7 +68,5 @@ BusSELinuxID* bus_selinux_init_connection_id (DBusConnection *connection,
-
-
- void bus_selinux_audit_init(void);
--dbus_bool_t _dbus_change_to_daemon_user (const char *user,
-- DBusError *error);
-
- #endif /* BUS_SELINUX_H */
-diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c
-index 27cdbb0..74e8d88 100644
---- a/dbus/dbus-sysdeps-util-unix.c
-+++ b/dbus/dbus-sysdeps-util-unix.c
-@@ -303,6 +303,68 @@ _dbus_verify_daemon_user (const char *user)
- return _dbus_get_user_id_and_primary_group (&u, NULL, NULL);
- }
-
-+
-+/* The HAVE_LIBAUDIT case lives in selinux.c */
-+#ifndef HAVE_LIBAUDIT
-+/**
-+ * Changes the user and group the bus is running as.
-+ *
-+ * @param user the user to become
-+ * @param error return location for errors
-+ * @returns #FALSE on failure
-+ */
-+dbus_bool_t
-+_dbus_change_to_daemon_user (const char *user,
-+ DBusError *error)
-+{
-+ dbus_uid_t uid;
-+ dbus_gid_t gid;
-+ DBusString u;
-+
-+ _dbus_string_init_const (&u, user);
-+
-+ if (!_dbus_get_user_id_and_primary_group (&u, &uid, &gid))
-+ {
-+ dbus_set_error (error, DBUS_ERROR_FAILED,
-+ "User '%s' does not appear to exist?",
-+ user);
-+ return FALSE;
-+ }
-+
-+ /* setgroups() only works if we are a privileged process,
-+ * so we don't return error on failure; the only possible
-+ * failure is that we don't have perms to do it.
-+ *
-+ * not sure this is right, maybe if setuid()
-+ * is going to work then setgroups() should also work.
-+ */
-+ if (setgroups (0, NULL) < 0)
-+ _dbus_warn ("Failed to drop supplementary groups: %s\n",
-+ _dbus_strerror (errno));
-+
-+ /* Set GID first, or the setuid may remove our permission
-+ * to change the GID
-+ */
-+ if (setgid (gid) < 0)
-+ {
-+ dbus_set_error (error, _dbus_error_from_errno (errno),
-+ "Failed to set GID to %lu: %s", gid,
-+ _dbus_strerror (errno));
-+ return FALSE;
-+ }
-+
-+ if (setuid (uid) < 0)
-+ {
-+ dbus_set_error (error, _dbus_error_from_errno (errno),
-+ "Failed to set UID to %lu: %s", uid,
-+ _dbus_strerror (errno));
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}
-+#endif /* !HAVE_LIBAUDIT */
-+
- void
- _dbus_init_system_log (void)
- {
-diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
-index b154f01..80f0ba2 100644
---- a/dbus/dbus-sysdeps.h
-+++ b/dbus/dbus-sysdeps.h
-@@ -512,6 +512,9 @@ unsigned long _dbus_pid_for_log (void);
- */
- dbus_pid_t _dbus_getpid (void);
-
-+dbus_bool_t _dbus_change_to_daemon_user (const char *user,
-+ DBusError *error);
-+
- void _dbus_flush_caches (void);
-
- /** @} */
---
-1.6.2.5
-