summaryrefslogtreecommitdiff
path: root/bus/driver.c
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2015-03-05 12:32:05 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2015-03-05 13:09:07 +0000
commit49d67163da975973379fb735c5348a83598b28c7 (patch)
tree3327d859b93550310c40dd998eca23054366062f /bus/driver.c
parente488588501eef83d8164f9d475ae7f8575c33867 (diff)
downloaddbus-49d67163da975973379fb735c5348a83598b28c7.tar.gz
Improve diagnostics when UpdateActivationEnvironment calls are rejected
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=88812 Reviewed-by: Colin Walters <walters@verbum.org> [smcv: rebased to not require the extra code initially on that bug]
Diffstat (limited to 'bus/driver.c')
-rw-r--r--bus/driver.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/bus/driver.c b/bus/driver.c
index aab922ae..23e75a21 100644
--- a/bus/driver.c
+++ b/bus/driver.c
@@ -43,6 +43,13 @@
#include <dbus/dbus-marshal-validate.h>
#include <string.h>
+static inline const char *
+nonnull (const char *maybe_null,
+ const char *if_null)
+{
+ return (maybe_null ? maybe_null : if_null);
+}
+
static DBusConnection *
bus_driver_get_owner_of_name (DBusConnection *connection,
const char *name)
@@ -121,7 +128,10 @@ bus_driver_check_caller_is_privileged (DBusConnection *connection,
bus_context_log_and_set_error (bus_transaction_get_context (transaction),
DBUS_SYSTEM_LOG_SECURITY, error, DBUS_ERROR_ACCESS_DENIED,
- "rejected attempt to call %s by unknown uid", method);
+ "rejected attempt to call %s by connection %s (%s) with "
+ "unknown uid", method,
+ nonnull (bus_connection_get_name (connection), "(inactive)"),
+ bus_connection_get_loginfo (connection));
return FALSE;
}
@@ -142,7 +152,10 @@ bus_driver_check_caller_is_privileged (DBusConnection *connection,
bus_context_log_and_set_error (bus_transaction_get_context (transaction),
DBUS_SYSTEM_LOG_SECURITY, error, DBUS_ERROR_ACCESS_DENIED,
- "rejected attempt to call %s by uid %lu", method, uid);
+ "rejected attempt to call %s by connection %s (%s) with "
+ "uid %lu", method,
+ nonnull (bus_connection_get_name (connection), "(inactive)"),
+ bus_connection_get_loginfo (connection), uid);
return FALSE;
}