summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Denis-Courmont <remi.denis-courmont@nokia.com>2011-01-26 09:33:57 +0200
committerMarcel Holtmann <marcel@holtmann.org>2011-01-26 09:46:42 +0100
commit8c88ccaad94e79e90db2f8ec5d1b9e88dc163677 (patch)
tree4a3bf7202dfb15201e0755a7220e9887f997c3eb
parent3ef33522e7781af2875958c09d86c2146d4d1c7b (diff)
downloadofono-8c88ccaad94e79e90db2f8ec5d1b9e88dc163677.tar.bz2
modem: do not allow more than one client to lock down
-rw-r--r--src/modem.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/modem.c b/src/modem.c
index 553549e4..a92107e2 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -805,11 +805,14 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem,
if (modem->pending != NULL)
return __ofono_error_busy(msg);
+ caller = dbus_message_get_sender(msg);
+
+ if (modem->lockdown && g_strcmp0(caller, modem->lock_owner))
+ return __ofono_error_access_denied(msg);
+
if (modem->lockdown == lockdown)
return dbus_message_new_method_return(msg);
- caller = dbus_message_get_sender(msg);
-
if (lockdown) {
dbus_bool_t powered;
@@ -847,12 +850,8 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem,
OFONO_MODEM_INTERFACE,
"Powered", DBUS_TYPE_BOOLEAN,
&powered);
- } else {
- if (g_strcmp0(caller, modem->lock_owner))
- return __ofono_error_access_denied(msg);
-
+ } else
lockdown_remove(modem);
- }
done:
g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID);