OSDN Git Service

neard: Restrict method calls only to neard process
authorSzymon Janc <szymon.janc@tieto.com>
Fri, 15 Feb 2013 12:09:15 +0000 (13:09 +0100)
committerJohan Hedberg <johan.hedberg@intel.com>
Fri, 15 Feb 2013 14:28:48 +0000 (16:28 +0200)
Disallow methods calls from processes other than registered to as
agent.

plugins/neard.c

index 650ee3e..88a6229 100644 (file)
@@ -637,6 +637,10 @@ static DBusMessage *push_oob(DBusConnection *conn, DBusMessage *msg, void *data)
        uint8_t io_cap;
        int err;
 
+       if (neard_service == NULL ||
+                       !g_str_equal(neard_service, dbus_message_get_sender(msg)))
+               return error_reply(msg, EPERM);
+
        DBG("");
 
        adapter = btd_adapter_get_default();
@@ -714,6 +718,10 @@ static DBusMessage *request_oob(DBusConnection *conn, DBusMessage *msg,
        struct btd_device *device;
        int err;
 
+       if (neard_service == NULL ||
+                       !g_str_equal(neard_service, dbus_message_get_sender(msg)))
+               return error_reply(msg, EPERM);
+
        DBG("");
 
        adapter = btd_adapter_get_default();
@@ -776,6 +784,10 @@ read_local:
 static DBusMessage *release(DBusConnection *conn, DBusMessage *msg,
                                                        void *user_data)
 {
+       if (neard_service == NULL ||
+                       !g_str_equal(neard_service, dbus_message_get_sender(msg)))
+               return error_reply(msg, EPERM);
+
        DBG("");
 
        g_free(neard_service);