diff options
Diffstat (limited to 'bus/driver.c')
-rw-r--r-- | bus/driver.c | 13 |
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); |