diff options
author | Cosimo Cecchi <cosimo@endlessm.com> | 2016-07-07 14:23:17 -0700 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2016-07-13 08:48:29 +0200 |
commit | 48877cbca19d13f4bdb9aae4bf366e78831cedc4 (patch) | |
tree | 6ffacc71256cdcdf8e36b87719af481ac5785cac | |
parent | c75d48a725e516804e75fab4fb812b65350e2735 (diff) | |
download | gvfs-gnome-3-16.tar.gz |
gvfs-open: also replace dashes when computing object pathgnome-3-16
This is what GApplication does, and we should do it here too, or
gvfs-open won't work for DBus-activatable applications with dashses in
their app IDs.
https://bugzilla.gnome.org/show_bug.cgi?id=768410
-rw-r--r-- | programs/gvfs-open.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/programs/gvfs-open.c b/programs/gvfs-open.c index bb518dc1..624ac388 100644 --- a/programs/gvfs-open.c +++ b/programs/gvfs-open.c @@ -89,8 +89,19 @@ get_bus_name_and_path_from_uri (char *uri, bus_name = g_strdup (basename); object_path = g_strdup_printf ("/%s", bus_name); for (p = object_path; *p != '\0'; p++) - if (*p == '.') - *p = '/'; + { + if (*p == '.') + *p = '/'; + else if (*p == '-') + *p = '_'; + } + + if (!g_variant_is_object_path (object_path)) + { + g_warning ("Invalid object path \"%s\"", object_path); + g_free (object_path); + goto out; + } *bus_name_out = g_steal_pointer (&bus_name); *object_path_out = g_steal_pointer (&object_path); |