summaryrefslogtreecommitdiff
path: root/src/agent-connman.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/agent-connman.c')
-rwxr-xr-xsrc/agent-connman.c114
1 files changed, 84 insertions, 30 deletions
diff --git a/src/agent-connman.c b/src/agent-connman.c
index 177cbe0a..e4850a8f 100755
--- a/src/agent-connman.c
+++ b/src/agent-connman.c
@@ -100,73 +100,101 @@ static void request_input_passphrase_reply(DBusMessage *reply, void *user_data)
DBusMessageIter entry, value;
dbus_message_iter_recurse(&dict, &entry);
- if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING)
+ if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
dbus_message_iter_get_basic(&entry, &key);
if (g_str_equal(key, "Identity")) {
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
dbus_message_iter_get_basic(&value, &identity);
} else if (g_str_equal(key, "Passphrase")) {
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
dbus_message_iter_get_basic(&value, &passphrase);
} else if (g_str_equal(key, "WPS")) {
- wps = true;
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
+ wps = true;
dbus_message_iter_get_basic(&value, &wpspin);
break;
} else if (g_str_equal(key, "Name")) {
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
dbus_message_iter_get_basic(&value, &name);
name_len = strlen(name);
} else if (g_str_equal(key, "SSID")) {
-#if defined TIZEN_EXT
- DBusMessageIter array;
-#endif
+ DBusMessageIter array_iter;
+
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
- break;
-#if defined TIZEN_EXT
- dbus_message_iter_recurse(&entry, &array);
- if (dbus_message_iter_get_arg_type(&array)
- != DBUS_TYPE_ARRAY)
- break;
- dbus_message_iter_recurse(&array, &value);
- if (dbus_message_iter_get_arg_type(&value)
- != DBUS_TYPE_BYTE)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
-#else
-
+ }
dbus_message_iter_recurse(&entry, &value);
if (dbus_message_iter_get_arg_type(&value)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_ARRAY) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
- if (dbus_message_iter_get_element_type(&value)
- != DBUS_TYPE_VARIANT)
+ }
+ dbus_message_iter_recurse(&value, &array_iter);
+ if (dbus_message_iter_get_arg_type(&array_iter)
+ != DBUS_TYPE_BYTE) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
-#endif
- dbus_message_iter_get_fixed_array(&value, &name,
+ }
+ dbus_message_iter_get_fixed_array(&array_iter, &name,
&name_len);
}
dbus_message_iter_next(&dict);
@@ -417,17 +445,33 @@ static void request_input_login_reply(DBusMessage *reply, void *user_data)
if (g_str_equal(key, "Username")) {
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
dbus_message_iter_get_basic(&value, &username);
} else if (g_str_equal(key, "Password")) {
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry) !=
- DBUS_TYPE_VARIANT)
+ DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
dbus_message_iter_get_basic(&value, &password);
}
@@ -723,8 +767,10 @@ static void request_peer_authorization_reply(DBusMessage *reply,
DBusMessageIter entry, value;
dbus_message_iter_recurse(&dict, &entry);
- if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING)
+ if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
dbus_message_iter_get_basic(&entry, &key);
@@ -733,9 +779,17 @@ static void request_peer_authorization_reply(DBusMessage *reply,
dbus_message_iter_next(&entry);
if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
+ != DBUS_TYPE_VARIANT) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
break;
+ }
+
dbus_message_iter_recurse(&entry, &value);
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) {
+ error = CONNMAN_ERROR_INTERFACE ".InvalidArguments";
+ break;
+ }
+
dbus_message_iter_get_basic(&value, &wpspin);
break;
}