aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorSheldon Hearn <sheldonh@FreeBSD.org>2000-08-01 13:58:55 +0000
committerSheldon Hearn <sheldonh@FreeBSD.org>2000-08-01 13:58:55 +0000
commit028f24cffa59e77bfb6c78180b76a94a207c6438 (patch)
tree13b3d52eb93ed7f9b86eecec672fdba70bad70f5 /libexec
parented7cf099c66d4ee089de5c86886cfd6721e20c3a (diff)
Notes
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ftpd/ftpd.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/libexec/ftpd/ftpd.c b/libexec/ftpd/ftpd.c
index 6c6502890447..0471c2278cf2 100644
--- a/libexec/ftpd/ftpd.c
+++ b/libexec/ftpd/ftpd.c
@@ -1188,11 +1188,14 @@ pass(passwd)
goto skip;
#endif
#ifdef SKEY
- rval = strcmp(skey_crypt(passwd, pw->pw_passwd, pw, pwok),
- pw->pw_passwd);
- pwok = 0;
+ if (pwok)
+ rval = strcmp(pw->pw_passwd,
+ crypt(passwd, pw->pw_passwd));
+ if (rval)
+ rval = strcmp(pw->pw_passwd,
+ skey_crypt(passwd, pw->pw_passwd, pw, pwok));
#else
- rval = strcmp(crypt(passwd, pw->pw_passwd), pw->pw_passwd);
+ rval = strcmp(pw->pw_passwd, crypt(passwd, pw->pw_passwd));
#endif
/* The strcmp does not catch null passwords! */
if (*pw->pw_passwd == '\0' ||
@@ -1220,6 +1223,9 @@ skip:
return;
}
}
+#ifdef SKEY
+ pwok = 0;
+#endif
login_attempts = 0; /* this time successful */
if (setegid((gid_t)pw->pw_gid) < 0) {
reply(550, "Can't set gid.");