summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2015-10-06 15:09:04 +0900
committerRoss Lagerwall <rosslagerwall@gmail.com>2015-10-21 00:12:04 +0100
commitc259305847b1ebde1ae89a3c921a13b6c0b67116 (patch)
tree5b2f38696d08b393ac72ed0012cddb0f5e9b9630
parentd19a4bc2475705f8252f8952c446b57b31661453 (diff)
downloadgvfs-c259305847b1ebde1ae89a3c921a13b6c0b67116.tar.gz
Avoid crash when no monitor implementations exist.
The GVariantBuilder is unable to create any GVariant for an untyped array - while an empty vector is a valid variant, it is not valid for an untyped array. Passing the resulting null to gvfs_dbus_daemon_complete_cancel() causes gvfs to abort with a g_error(). https://bugzilla.gnome.org/show_bug.cgi?id=756105
-rw-r--r--daemon/gvfsdaemon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c
index 7bc334b9..b7a3b885 100644
--- a/daemon/gvfsdaemon.c
+++ b/daemon/gvfsdaemon.c
@@ -957,7 +957,7 @@ handle_list_monitor_implementations (GVfsDBusDaemon *object,
impls = g_vfs_list_monitor_implementations ();
- g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ssbia{sv})"));
for (l = impls; l != NULL; l = l->next)
{