From a59f0784861f4b36757dc42822ae42766998082e Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Thu, 7 Sep 2017 11:01:42 +0200 Subject: [PATCH] Prep v231.6: Fix pam_elogind to not falter when elogind is not running, yet. --- src/basic/login-util.h | 2 ++ src/login/pam_elogind.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/basic/login-util.h b/src/basic/login-util.h index b01ee25c8..a71ebd4ef 100644 --- a/src/basic/login-util.h +++ b/src/basic/login-util.h @@ -24,6 +24,8 @@ bool session_id_valid(const char *id); +#if 0 /// UNNEEDED by elogind static inline bool logind_running(void) { return access("/run/systemd/seats/", F_OK) >= 0; } +#endif // 0 diff --git a/src/login/pam_elogind.c b/src/login/pam_elogind.c index 472abdede..402885d7e 100644 --- a/src/login/pam_elogind.c +++ b/src/login/pam_elogind.c @@ -232,9 +232,11 @@ _public_ PAM_EXTERN int pam_sm_open_session( assert(handle); +#if 0 /// with elogind, it is always a "logind system". /* Make this a NOP on non-logind systems */ if (!logind_running()) return PAM_SUCCESS; +#endif // 0 if (parse_argv(handle, argc, argv, @@ -247,7 +249,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( #if 0 /// This is pam-elogind, not pam-systemd pam_syslog(handle, LOG_DEBUG, "pam-systemd initializing"); #else - pam_syslog(handle, LOG_DEBUG, "pam-systemd initializing"); + pam_syslog(handle, LOG_DEBUG, "pam-elogind initializing"); #endif // 0 r = get_user_data(handle, &username, &pw); @@ -263,7 +265,11 @@ _public_ PAM_EXTERN int pam_sm_open_session( * leave. */ pam_get_item(handle, PAM_SERVICE, (const void**) &service); +#if 0 /// Actually it is elogind-user with elogind. if (streq_ptr(service, "systemd-user")) { +#else + if (streq_ptr(service, "elogind-user")) { +#endif // 0 _cleanup_free_ char *rt = NULL; if (asprintf(&rt, "/run/user/"UID_FMT, pw->pw_uid) < 0) -- 2.30.2