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:47:14 +0200
commitb7e9b314138cb2047b3dbe9f1f005a6bcbbf3ca6 (patch)
tree3089a540b0a529e022b9c09589010a68742ac40b
parent4dca9bcd306e16b60b6577734951027cf85081e7 (diff)
downloadgvfs-b7e9b314138cb2047b3dbe9f1f005a6bcbbf3ca6.tar.gz
gvfs-open: also replace dashes when computing object path
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);