]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
su: use get_terminal_name() for compatibility with login(1)
authorKarel Zak <kzak@redhat.com>
Thu, 22 Nov 2012 13:45:49 +0000 (14:45 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 22 Nov 2012 13:45:49 +0000 (14:45 +0100)
login(1) uses tty name (!= path) in the syslog messages.

Signed-off-by: Karel Zak <kzak@redhat.com>
login-utils/Makemodule.am
login-utils/su-common.c

index 0d8e8b14117ccb4a59579ba15f56b6a11f056b2e..9edb9f497896e9407d20e8c156ade3ab0dbce64c 100644 (file)
@@ -89,7 +89,7 @@ su_SOURCES = \
        login-utils/logindefs.h
 su_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
 su_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
-su_LDADD = $(LDADD) -lpam -lpam_misc
+su_LDADD = $(LDADD) libcommon.la -lpam -lpam_misc
 endif
 
 
@@ -102,7 +102,7 @@ runuser_SOURCES = \
        login-utils/su-common.h \
        login-utils/logindefs.c \
        login-utils/logindefs.h
-runuser_LDADD = $(LDADD) -lpam -lpam_misc
+runuser_LDADD = $(LDADD) libcommon.la -lpam -lpam_misc
 endif
 
 
index cd8338088d56c70d0b49556f38996097dffc9b0a..c5e288d15778aa2e5c09cbf09db026c4f2f2e32d 100644 (file)
@@ -64,6 +64,7 @@ enum
 #include "pathnames.h"
 #include "env.h"
 #include "closestream.h"
+#include "ttyutils.h"
 
 /* name of the pam configuration files. separate configs for su and su -  */
 #define PAM_SRVNAME_SU "su"
@@ -154,8 +155,8 @@ log_syslog(struct passwd const *pw, bool successful)
       struct passwd *pwd = current_getpwuid();
       old_user = pwd ? pwd->pw_name : "";
     }
-  tty = ttyname (STDERR_FILENO);
-  if (!tty)
+
+  if (get_terminal_name(NULL, &tty, NULL) == 0 && tty)
     tty = "none";
 
   openlog (program_invocation_short_name, 0 , LOG_AUTH);