From a961acde448065bf8e57573d8bfd3318465bd8cf Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Thu, 11 Jun 2020 18:31:49 +0200 Subject: [PATCH] attempt to fix logind restart issue https://github.com/systemd/systemd/issues/16146 --- systemd-logind_restart.patch | 38 ++++++++++++++++++++++++++++++++++++ systemd.spec | 2 ++ 2 files changed, 40 insertions(+) create mode 100644 systemd-logind_restart.patch diff --git a/systemd-logind_restart.patch b/systemd-logind_restart.patch new file mode 100644 index 0000000..376542d --- /dev/null +++ b/systemd-logind_restart.patch @@ -0,0 +1,38 @@ +From 0664daffee63648ff93b5571421149383501d356 Mon Sep 17 00:00:00 2001 +From: Jan Palus +Date: Thu, 11 Jun 2020 18:23:28 +0200 +Subject: [PATCH] login: filenames in /run/systemd/users are uids + +Fixes: #16146 +Signed-off-by: Jan Palus +--- + src/login/logind.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/login/logind.c b/src/login/logind.c +index 5a556f9ea4..3239f7d18a 100644 +--- a/src/login/logind.c ++++ b/src/login/logind.c +@@ -328,11 +328,18 @@ static int manager_enumerate_users(Manager *m) { + + FOREACH_DIRENT(de, d, return -errno) { + User *u; ++ uid_t uid; + + if (!dirent_is_file(de)) + continue; + +- k = manager_add_user_by_name(m, de->d_name, &u); ++ k = safe_atou(de->d_name, &uid); ++ if (k < 0) { ++ r = log_warning_errno(k, "Failed to add user by file name %s, ignoring: %m", de->d_name); ++ continue; ++ } ++ ++ k = manager_add_user_by_uid(m, uid, &u); + if (k < 0) { + r = log_warning_errno(k, "Failed to add user by file name %s, ignoring: %m", de->d_name); + continue; +-- +2.27.0 + diff --git a/systemd.spec b/systemd.spec index 04298c8..1a60aa5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -77,6 +77,7 @@ Patch12: uids_gids.patch Patch13: sysctl.patch Patch14: pld-pam-%{name}-user.patch Patch15: %{name}-x32.patch +Patch16: %{name}-logind_restart.patch URL: https://www.freedesktop.org/wiki/Software/systemd/ BuildRequires: acl-devel %{?with_audit:BuildRequires: audit-libs-devel} @@ -673,6 +674,7 @@ Uzupełnianie parametrów w zsh dla poleceń udev. %patch13 -p1 %patch14 -p1 %patch15 -p1 +%patch16 -p1 cp -p %{SOURCE2} src/systemd_booted.c -- 2.43.0