summaryrefslogtreecommitdiff
blob: 0e8c49ae7fa928c27b4a606cb37072d554c64d7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From c259305847b1ebde1ae89a3c921a13b6c0b67116 Mon Sep 17 00:00:00 2001
From: Tristan Van Berkom <tristan.vanberkom@codethink.co.uk>
Date: Tue, 6 Oct 2015 15:09:04 +0900
Subject: 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
---
 daemon/gvfsdaemon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c
index 7bc334b..b7a3b88 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)
     {
-- 
cgit v0.11.2