summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2011-03-15 14:02:06 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2011-05-25 18:16:29 +0100
commitbe07ce63621701f1ebebec23436c9e2b61d1d4ec (patch)
tree4c43a9906ee5d7e165a8a186dc350f797fa9c2d7
parent79f02ca04a10a5fd553302c389ea02d9171d60d2 (diff)
downloaddbus-be07ce63621701f1ebebec23436c9e2b61d1d4ec.tar.gz
bus_context_check_security_policy: for SELinux denials, share code to set errors
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=35358 Reviewed-by: Colin Walters <walters@verbum.org>
-rw-r--r--bus/bus.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/bus/bus.c b/bus/bus.c
index bf327248..19436f9a 100644
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -1455,21 +1455,12 @@ bus_context_check_security_policy (BusContext *context,
{
if (error != NULL && !dbus_error_is_set (error))
{
- sender_name = bus_connection_get_name (sender);
-
- dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED,
- "An SELinux policy prevents this sender "
- "from sending this message to this recipient "
- "(rejected message had sender \"%s\" interface \"%s\" "
- "member \"%s\" error name \"%s\" destination \"%s\")",
- sender_name ? sender_name : "(unset)",
- dbus_message_get_interface (message) ?
- dbus_message_get_interface (message) : "(unset)",
- dbus_message_get_member (message) ?
- dbus_message_get_member (message) : "(unset)",
- dbus_message_get_error_name (message) ?
- dbus_message_get_error_name (message) : "(unset)",
- dest ? dest : DBUS_SERVICE_DBUS);
+ /* don't syslog this, just set the error: avc_has_perm should
+ * have already written to either the audit log or syslog */
+ complain_about_message (context,
+ "An SELinux policy prevents this sender from sending this "
+ "message to this recipient",
+ 0, message, sender, proposed_recipient, FALSE, FALSE, error);
_dbus_verbose ("SELinux security check denying send to service\n");
}