37 lines
1.5 KiB
Diff
37 lines
1.5 KiB
Diff
|
From 5dd32bbe8c4cb06df63cadb7e40ecd92997f001d Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||
|
Date: Thu, 18 May 2017 20:58:23 -0400
|
||
|
Subject: [PATCH] sd-login: read list of uids of sessions from UIDS not
|
||
|
ACTIVE_SESSIONS
|
||
|
|
||
|
As described by Luke Shumaker:
|
||
|
|
||
|
sd_seat_get_sessions looks at /run/systemd/seats/${seat_name}:SESSIONS to get
|
||
|
the list of sessions (which I believe is correct), and at
|
||
|
/run/systemd/seats/${seat_name}:ACTIVE_SESSIONS for the list of users (which
|
||
|
I believe is incorrect); I believe that it should look at the UIDS field for
|
||
|
the list of users. As far as I can tell, the ACTIVE_SESSIONS field is never
|
||
|
even present in the seats file. I also believe that this has been broken
|
||
|
since the function was first committed almost 6 years ago.
|
||
|
|
||
|
Fixes #5743.
|
||
|
|
||
|
(cherry picked from commit d3cfab3148de482649e22d9dbbfec6e967a80856)
|
||
|
---
|
||
|
src/libsystemd/sd-login/sd-login.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/libsystemd/sd-login/sd-login.c b/src/libsystemd/sd-login/sd-login.c
|
||
|
index d2cfbdf5b0..cdbdc37856 100644
|
||
|
--- a/src/libsystemd/sd-login/sd-login.c
|
||
|
+++ b/src/libsystemd/sd-login/sd-login.c
|
||
|
@@ -687,7 +687,7 @@ _public_ int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **ui
|
||
|
|
||
|
r = parse_env_file(p, NEWLINE,
|
||
|
"SESSIONS", &s,
|
||
|
- "ACTIVE_SESSIONS", &t,
|
||
|
+ "UIDS", &t,
|
||
|
NULL);
|
||
|
if (r == -ENOENT)
|
||
|
return -ENXIO;
|