diff options
author | Karel Zak | 2013-09-09 12:24:01 +0200 |
---|---|---|
committer | Karel Zak | 2013-09-09 12:37:34 +0200 |
commit | 9b5dc4cb8d5d82c31c0cda898832998c21afc303 (patch) | |
tree | 511c7fa76c7195031f9e039edd6bd83038ca192d /login-utils/su-common.c | |
parent | agetty: cleanup debug ifdefs (diff) | |
download | kernel-qcow2-util-linux-9b5dc4cb8d5d82c31c0cda898832998c21afc303.tar.gz kernel-qcow2-util-linux-9b5dc4cb8d5d82c31c0cda898832998c21afc303.tar.xz kernel-qcow2-util-linux-9b5dc4cb8d5d82c31c0cda898832998c21afc303.zip |
su: fix lastlog and btmp logging
The su(1) logging code mix ups "old" and "new" passwd structs. The
result is things like
Sep 9 11:50:45 x2 su: (to kzak) kzak on none
in /var/log/messages. The right log entry is
Sep 9 11:50:45 x2 su: (to root) kzak on pts/3
The bug has been introduced by commit c74a7af17c7a176c358dfaa8e1814786c89ebc14.
References: https://bugzilla.redhat.com/show_bug.cgi?id=1005194
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'login-utils/su-common.c')
-rw-r--r-- | login-utils/su-common.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/login-utils/su-common.c b/login-utils/su-common.c index ade5c9210..858af0176 100644 --- a/login-utils/su-common.c +++ b/login-utils/su-common.c @@ -161,7 +161,7 @@ log_syslog(struct passwd const *pw, bool successful) old_user = pwd ? pwd->pw_name : ""; } - if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) == 0 && tty) + if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) != 0 || !tty) tty = "none"; openlog (program_invocation_short_name, 0 , LOG_AUTH); @@ -483,9 +483,6 @@ authenticate (const struct passwd *pw) done: - if (lpw && lpw->pw_name) - pw = lpw; - log_syslog(pw, !is_pam_failure(retval)); if (is_pam_failure(retval)) |