summaryrefslogtreecommitdiffstats
path: root/login-utils/su-common.c
diff options
context:
space:
mode:
authorKarel Zak2013-09-09 12:24:01 +0200
committerKarel Zak2013-09-09 12:37:34 +0200
commit9b5dc4cb8d5d82c31c0cda898832998c21afc303 (patch)
tree511c7fa76c7195031f9e039edd6bd83038ca192d /login-utils/su-common.c
parentagetty: cleanup debug ifdefs (diff)
downloadkernel-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.c5
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))