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 c74a7af17c
.
References: https://bugzilla.redhat.com/show_bug.cgi?id=1005194
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
46568b002d
commit
9b5dc4cb8d
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue