cdown / rpms / util-linux

Forked from rpms/util-linux 2 years ago
Clone
6717ab
From 9b5dc4cb8d5d82c31c0cda898832998c21afc303 Mon Sep 17 00:00:00 2001
6717ab
From: Karel Zak <kzak@redhat.com>
6717ab
Date: Mon, 9 Sep 2013 12:24:01 +0200
6717ab
Subject: [PATCH] su: fix lastlog and btmp logging
6717ab
6717ab
The su(1) logging code mix ups "old" and "new" passwd structs. The
6717ab
result is things like
6717ab
6717ab
	Sep  9 11:50:45 x2 su: (to kzak) kzak on none
6717ab
6717ab
in /var/log/messages. The right log entry is
6717ab
6717ab
	Sep  9 11:50:45 x2 su: (to root) kzak on pts/3
6717ab
6717ab
The bug has been introduced by commit c74a7af17c7a176c358dfaa8e1814786c89ebc14.
6717ab
6717ab
References: https://bugzilla.redhat.com/show_bug.cgi?id=1005194
6717ab
Signed-off-by: Karel Zak <kzak@redhat.com>
6717ab
---
6717ab
 login-utils/su-common.c | 5 +----
6717ab
 1 file changed, 1 insertion(+), 4 deletions(-)
6717ab
6717ab
diff --git a/login-utils/su-common.c b/login-utils/su-common.c
6717ab
index ade5c92..858af01 100644
6717ab
--- a/login-utils/su-common.c
6717ab
+++ b/login-utils/su-common.c
6717ab
@@ -161,7 +161,7 @@ log_syslog(struct passwd const *pw, bool successful)
6717ab
       old_user = pwd ? pwd->pw_name : "";
6717ab
     }
6717ab
 
6717ab
-  if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) == 0 && tty)
6717ab
+  if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) != 0 || !tty)
6717ab
     tty = "none";
6717ab
 
6717ab
   openlog (program_invocation_short_name, 0 , LOG_AUTH);
6717ab
@@ -483,9 +483,6 @@ authenticate (const struct passwd *pw)
6717ab
 
6717ab
 done:
6717ab
 
6717ab
-  if (lpw && lpw->pw_name)
6717ab
-     pw = lpw;
6717ab
-
6717ab
   log_syslog(pw, !is_pam_failure(retval));
6717ab
 
6717ab
   if (is_pam_failure(retval))
6717ab
-- 
6717ab
1.8.1.4
6717ab