From 03b60a2d5e40da1b137117aba05a2c818edd09b3 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Tue, 12 Jan 2021 11:15:28 +0000 Subject: a11y: Sanitize the AT-SPI object path further When falling back to g_get_prgname(), we need to take into account that the program name may be the full argv[0] path, which will end up messing the DBus object path. --- gtk/a11y/gtkatspiroot.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gtk/a11y/gtkatspiroot.c b/gtk/a11y/gtkatspiroot.c index 48c9e60676..6aa1048841 100644 --- a/gtk/a11y/gtkatspiroot.c +++ b/gtk/a11y/gtkatspiroot.c @@ -667,8 +667,16 @@ gtk_at_spi_root_constructed (GObject *gobject) { const char *program_name = g_get_prgname (); + char *base_name = NULL; + if (program_name == NULL || *program_name == 0) + base_name = g_strdup ("unknown"); + else if (*program_name == '/') + base_name = g_path_get_basename (program_name); + else + base_name = g_strdup (program_name); + self->base_path = g_strconcat ("/org/gtk/application/", - program_name != NULL ? program_name : "unknown", + base_name, "/a11y", NULL); -- cgit v1.2.1