summarylogtreecommitdiffstats
path: root/patch-src_polkitbackend_polkitbackendsessionmonitor.diff
blob: 1f5279988f97659d137fe0c45ed8769e4439eb05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- src/polkitbackend/polkitbackendsessionmonitor.c.orig	2023-07-28 12:34:38 UTC
+++ src/polkitbackend/polkitbackendsessionmonitor.c
@@ -385,7 +385,7 @@ polkit_backend_session_monitor_get_session_for_subject
 
   if (POLKIT_IS_UNIX_PROCESS (subject))
     {
-      const gchar *session_id;
+      const gchar *session_path, *session_id;
       GVariant *result;
       result = g_dbus_connection_call_sync (monitor->system_bus,
                                             "org.freedesktop.ConsoleKit",
@@ -400,14 +400,16 @@ polkit_backend_session_monitor_get_session_for_subject
                                             error);
       if (result == NULL)
         goto out;
-      g_variant_get (result, "(&o)", &session_id);
+      g_variant_get (result, "(&o)", &session_path);
+      session_id = g_path_get_basename (session_path);
       session = polkit_unix_session_new (session_id);
+      g_free (session_id);
       g_variant_unref (result);
     }
   else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
     {
       guint32 pid;
-      const gchar *session_id;
+      const gchar *session_path, *session_id;
       GVariant *result;
 
       result = g_dbus_connection_call_sync (monitor->system_bus,
@@ -439,8 +441,10 @@ polkit_backend_session_monitor_get_session_for_subject
                                             error);
       if (result == NULL)
         goto out;
-      g_variant_get (result, "(&o)", &session_id);
+      g_variant_get (result, "(&o)", &session_path);
+      session_id = g_path_get_basename (session_path);
       session = polkit_unix_session_new (session_id);
+      g_free (session_id);
       g_variant_unref (result);
     }
   else