X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Fpam-module.c;h=262621d43fd3631eaa14b5d033d7be0f58217ac4;hb=849958d1ba3533c953fad46d4d41c0ec6e48316d;hp=ae4567334acf22c7e29cf29c1f447d5778783ec8;hpb=cda7ecb0a3d6cf839ec484a6690c12857a6e8375;p=elogind.git diff --git a/src/login/pam-module.c b/src/login/pam-module.c index ae4567334..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; } @@ -234,7 +234,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( return PAM_SESSION_ERR; if (debug) - pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); + pam_syslog(handle, LOG_DEBUG, "pam-systemd initializing"); r = get_user_data(handle, &username, &pw); if (r != PAM_SUCCESS) { @@ -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; @@ -484,7 +484,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL); if (r != PAM_SUCCESS) { pam_syslog(handle, LOG_ERR, "Failed to install session fd."); - close_nointr_nofail(session_fd); + safe_close(session_fd); return r; } }