diff options
Diffstat (limited to 'lib/libskey')
-rw-r--r-- | lib/libskey/skey_getpass.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/libskey/skey_getpass.c b/lib/libskey/skey_getpass.c index 51b564b..9878a5e 100644 --- a/lib/libskey/skey_getpass.c +++ b/lib/libskey/skey_getpass.c @@ -11,19 +11,15 @@ int pwok; { static char buf[128]; struct skey skey; - char *pass = ""; - char *username = pwd ? pwd->pw_name : ":"; + char *pass; int sflag; /* Attempt an s/key challenge. */ - sflag = skeyinfo(&skey, username, buf); - if (!sflag) + sflag = (pwd == NULL || skeyinfo(&skey, pwd->pw_name, buf)); + if (!sflag) { printf("%s\n", buf); - - if (!pwok) { - printf("(s/key required)\n"); - if (sflag) - return (pass); + if (!pwok) + printf("(s/key required)\n"); } pass = getpass(prompt); |