GDBus: Use specific variant type in GetAll()
authorDavid Zeuthen <davidz@redhat.com>
Sat, 15 May 2010 01:08:01 +0000 (21:08 -0400)
committerDavid Zeuthen <davidz@redhat.com>
Sat, 15 May 2010 01:08:01 +0000 (21:08 -0400)
Without this fix, we segfault if the exported object returned an error
on all get_property() calls (in reality, this never happens).

Signed-off-by: David Zeuthen <davidz@redhat.com>
gio/gdbusconnection.c

index 3c0051a..913c409 100644 (file)
@@ -3393,7 +3393,7 @@ invoke_get_all_properties_in_idle_cb (gpointer _data)
    *       We could fail the whole call if just a single get_property() call
    *       returns an error. We need clarification in the D-Bus spec about this.
    */
-  builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY);
+  builder = g_variant_builder_new (G_VARIANT_TYPE ("a{sv}"));
   for (n = 0; data->interface_info->properties != NULL && data->interface_info->properties[n] != NULL; n++)
     {
       const GDBusPropertyInfo *property_info = data->interface_info->properties[n];