summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/appl/telnet/libtelnet/kerberos5.c')
-rw-r--r--crypto/heimdal/appl/telnet/libtelnet/kerberos5.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c b/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c
index 8a4bf69..a4316fb 100644
--- a/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c
+++ b/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c
@@ -53,7 +53,7 @@
#include <config.h>
-RCSID("$Id: kerberos5.c,v 1.51 2002/09/02 15:33:20 joda Exp $");
+RCSID("$Id: kerberos5.c,v 1.51.4.1 2002/10/21 14:28:31 joda Exp $");
#ifdef KRB5
@@ -425,6 +425,29 @@ kerberos5_is(Authenticator *ap, unsigned char *data, int cnt)
return;
}
+ if (key_block == NULL) {
+ ret = krb5_auth_con_getkey(context,
+ auth_context,
+ &key_block);
+ }
+ if (ret) {
+ Data(ap, KRB_REJECT, "krb5_auth_con_getkey failed", -1);
+ auth_finished(ap, AUTH_REJECT);
+ if (auth_debug_mode)
+ printf("Kerberos V5: "
+ "krb5_auth_con_getkey failed (%s)\r\n",
+ krb5_get_err_text(context, ret));
+ return;
+ }
+ if (key_block == NULL) {
+ Data(ap, KRB_REJECT, "no subkey received", -1);
+ auth_finished(ap, AUTH_REJECT);
+ if (auth_debug_mode)
+ printf("Kerberos V5: "
+ "krb5_auth_con_getremotesubkey returned NULL key\r\n");
+ return;
+ }
+
if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
ret = krb5_mk_rep(context, auth_context, &outbuf);
if (ret) {
OpenPOWER on IntegriCloud