summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimo@endlessm.com>2016-07-07 14:23:17 -0700
committerOndrej Holy <oholy@redhat.com>2016-07-13 08:48:29 +0200
commit48877cbca19d13f4bdb9aae4bf366e78831cedc4 (patch)
tree6ffacc71256cdcdf8e36b87719af481ac5785cac
parentc75d48a725e516804e75fab4fb812b65350e2735 (diff)
downloadgvfs-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.c15
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);