diff options
Diffstat (limited to 'hcid/dbus-security.c')
| -rw-r--r-- | hcid/dbus-security.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/hcid/dbus-security.c b/hcid/dbus-security.c index 0fe55dd2..cd70616b 100644 --- a/hcid/dbus-security.c +++ b/hcid/dbus-security.c @@ -761,6 +761,7 @@ static DBusHandlerResult authorize_service(DBusConnection *conn,  {  	const char *service_path, *adapter_path, *address, *action;  	struct service_agent *sagent; +	struct slist *l;  	if (!dbus_message_get_args(msg, NULL,  				DBUS_TYPE_STRING, &service_path, @@ -783,6 +784,12 @@ static DBusHandlerResult authorize_service(DBusConnection *conn,  	if (strcmp(dbus_message_get_sender(msg), sagent->id))  		return error_rejected(conn, msg); +	/* Check it is a trusted device */ +	l = slist_find(sagent->trusted_devices, address, (cmp_func_t) strcasecmp); +	if (l) +		return send_message_and_unref(conn, +				dbus_message_new_method_return(msg)); +  	if (!default_auth_agent)  		return error_auth_agent_does_not_exist(conn, msg);  | 
