summaryrefslogtreecommitdiff
path: root/usr.bin/ssh/auth-krb4.c
diff options
context:
space:
mode:
authorNiels Provos <provos@cvs.openbsd.org>2000-08-02 17:27:05 +0000
committerNiels Provos <provos@cvs.openbsd.org>2000-08-02 17:27:05 +0000
commit43ab6e433aad55cf3930f0db106d23e929504bcf (patch)
tree840d28f3b57c9d21994d8dace470a1b06548abfb /usr.bin/ssh/auth-krb4.c
parent0f753be3f4ac9cc6889da1a7b2f81deea284183d (diff)
disallow kerberos authentication if we can't verify the TGT; from
dugsong@ kerberos authentication is on by default only if you have a srvtab.
Diffstat (limited to 'usr.bin/ssh/auth-krb4.c')
-rw-r--r--usr.bin/ssh/auth-krb4.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.bin/ssh/auth-krb4.c b/usr.bin/ssh/auth-krb4.c
index e32089b7437..ae2b2a3d892 100644
--- a/usr.bin/ssh/auth-krb4.c
+++ b/usr.bin/ssh/auth-krb4.c
@@ -9,7 +9,7 @@
#include "ssh.h"
#include "servconf.h"
-RCSID("$OpenBSD: auth-krb4.c,v 1.15 2000/06/22 23:54:59 djm Exp $");
+RCSID("$OpenBSD: auth-krb4.c,v 1.16 2000/08/02 17:27:04 provos Exp $");
#ifdef KRB4
char *ticket = NULL;
@@ -82,11 +82,12 @@ auth_krb4_password(struct passwd * pw, const char *password)
if (r == RD_AP_UNDEC) {
/*
* Probably didn't have a srvtab on
- * localhost. Allow login.
+ * localhost. Disallow login.
*/
log("Kerberos V4 TGT for %s unverifiable, "
"no srvtab installed? krb_rd_req: %s",
pw->pw_name, krb_err_txt[r]);
+ goto kerberos_auth_failure;
} else if (r != KSUCCESS) {
log("Kerberos V4 %s ticket unverifiable: %s",
KRB4_SERVICE_NAME, krb_err_txt[r]);
@@ -94,12 +95,13 @@ auth_krb4_password(struct passwd * pw, const char *password)
}
} else if (r == KDC_PR_UNKNOWN) {
/*
- * Allow login if no rcmd service exists, but
+ * Disallow login if no rcmd service exists, and
* log the error.
*/
log("Kerberos V4 TGT for %s unverifiable: %s; %s.%s "
"not registered, or srvtab is wrong?", pw->pw_name,
krb_err_txt[r], KRB4_SERVICE_NAME, phost);
+ goto kerberos_auth_failure;
} else {
/*
* TGT is bad, forget it. Possibly spoofed!