Calling spice_session_set_shared_dir() with a NULL argument will trigger a runtime warning. g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE) will return NULL if (for example) ~/.config/user-dirs.dirs is missing, and this is the default value for the "shared-dir" property which is set upon SpiceSession construction. This means we could end up calling spice_session_set_shared_dir() with a NULL parameter when instantiating a SpiceSession instance. --- gtk/spice-session.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gtk/spice-session.c b/gtk/spice-session.c index 169294d..86891ee 100644 --- a/gtk/spice-session.c +++ b/gtk/spice-session.c @@ -287,6 +287,18 @@ session_disconnect(SpiceSession *self, gboolean keep_main) spice_session_abort_migration(self); } +static char * +spice_session_get_default_share_dir(void) +{ + const char *xdg_shared_dir; + xdg_shared_dir = g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE); + if (xdg_shared_dir != NULL) { + return g_strdup(xdg_shared_dir); + } + + return g_build_filename(g_get_home_dir(), "Public", NULL); +} + static void spice_session_dispose(GObject *gobject) { @@ -754,6 +766,7 @@ static void spice_session_set_property(GObject *gobject, static void spice_session_class_init(SpiceSessionClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS(klass); + char *default_share_dir; _wocky_http_proxy_get_type(); _wocky_https_proxy_get_type(); @@ -1310,15 +1323,17 @@ static void spice_session_class_init(SpiceSessionClass *klass) * * Since: 0.24 **/ + default_share_dir = spice_session_get_default_share_dir(); g_object_class_install_property (gobject_class, PROP_SHARED_DIR, g_param_spec_string("shared-dir", "Shared directory", "Shared directory", - g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE), + default_share_dir, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + g_free(default_share_dir); g_type_class_add_private(klass, sizeof(SpiceSessionPrivate)); } -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel