summaryrefslogtreecommitdiff
path: root/bus/driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/driver.c')
-rw-r--r--bus/driver.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/bus/driver.c b/bus/driver.c
index d3ad878f..6534382a 100644
--- a/bus/driver.c
+++ b/bus/driver.c
@@ -1354,9 +1354,16 @@ bus_driver_handle_add_match (DBusConnection *connection,
goto failed;
bustype = bus_context_get_type (context);
- if (bus_match_rule_get_client_is_eavesdropping (rule) &&
- !bus_apparmor_allows_eavesdropping (connection, bustype, error))
- goto failed;
+
+ if (bus_match_rule_get_client_is_eavesdropping (rule))
+ {
+ if (!bus_driver_check_caller_is_privileged (connection,
+ transaction,
+ message,
+ error) ||
+ !bus_apparmor_allows_eavesdropping (connection, bustype, error))
+ goto failed;
+ }
matchmaker = bus_connection_get_matchmaker (connection);