[gtk/ebassi/atspi-path-sanitize] a11y: Sanitize the AT-SPI object path further




commit 03b60a2d5e40da1b137117aba05a2c818edd09b3
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Tue Jan 12 11:15:28 2021 +0000

    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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]