session: Check D-Bus argumets for Changed method
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Mon, 17 Sep 2012 13:13:36 +0000 (15:13 +0200)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 27 Sep 2012 08:28:27 +0000 (10:28 +0200)
src/session.c

index 52ccb8b..c7c72a5 100644 (file)
@@ -1256,8 +1256,15 @@ static DBusMessage *change_session(DBusConnection *conn,
        if (dbus_message_iter_init(msg, &iter) == FALSE)
                return __connman_error_invalid_arguments(msg);
 
+       if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
+               return __connman_error_invalid_arguments(msg);
+
        dbus_message_iter_get_basic(&iter, &name);
        dbus_message_iter_next(&iter);
+
+       if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT)
+               return __connman_error_invalid_arguments(msg);
+
        dbus_message_iter_recurse(&iter, &value);
 
        switch (dbus_message_iter_get_arg_type(&value)) {