The manpage claims the -a option uses getlogin(2), so do so. Also,
authorguenther <guenther@openbsd.org>
Sun, 20 Jul 2014 04:07:16 +0000 (04:07 +0000)
committerguenther <guenther@openbsd.org>
Sun, 20 Jul 2014 04:07:16 +0000 (04:07 +0000)
ignore its value if it returns a user that doesn't exit

usr.bin/telnet/commands.c

index e9fc055..37c6e1e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: commands.c,v 1.57 2014/07/20 04:00:47 guenther Exp $  */
+/*     $OpenBSD: commands.c,v 1.58 2014/07/20 04:07:16 guenther Exp $  */
 /*     $NetBSD: commands.c,v 1.14 1996/03/24 22:03:48 jtk Exp $        */
 
 /*
@@ -2088,9 +2088,9 @@ tn(argc, argv)
     if (autologin && user == NULL) {
        struct passwd *pw;
 
-       user = getenv("USER");
+       user = getlogin();
        if (user == NULL ||
-           ((pw = getpwnam(user)) && pw->pw_uid != getuid())) {
+           (pw = getpwnam(user)) == NULL || pw->pw_uid != getuid()) {
                if ((pw = getpwuid(getuid())) != NULL)
                        user = pw->pw_name;
                else