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
|