X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Fpam-module.c;h=262621d43fd3631eaa14b5d033d7be0f58217ac4;hb=b98490f7dc8372bcd3fa6dd54e3b62b6e365b609;hp=9873dd547ae166e18f279b8987c3a2184baf9d60;hpb=03e334a1c7dc8c20c38902aa039440763acc9b17;p=elogind.git diff --git a/src/login/pam-module.c b/src/login/pam-module.c index 9873dd547..262621d43 100644 --- a/src/login/pam-module.c +++ b/src/login/pam-module.c @@ -184,7 +184,7 @@ static int export_legacy_dbus_address( return PAM_SUCCESS; if (asprintf(&s, KERNEL_USER_BUS_FMT ";" UNIX_USER_BUS_FMT, - (unsigned long) uid, runtime) < 0) { + uid, runtime) < 0) { pam_syslog(handle, LOG_ERR, "Failed to set bus variable."); return PAM_BUF_ERR; } @@ -252,7 +252,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( if (streq_ptr(service, "systemd-user")) { _cleanup_free_ char *p = NULL, *rt = NULL; - if (asprintf(&p, "/run/systemd/users/%lu", (unsigned long) pw->pw_uid) < 0) + if (asprintf(&p, "/run/systemd/users/"UID_FMT, pw->pw_uid) < 0) return PAM_BUF_ERR; r = parse_env_file(p, NEWLINE, @@ -475,7 +475,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( } if (session_fd >= 0) { - session_fd = dup(session_fd); + session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3); if (session_fd < 0) { pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m"); return PAM_SESSION_ERR;