diff --git a/appl/telnet/libtelnet/kerberos5.c b/appl/telnet/libtelnet/kerberos5.c index cf4094cb2..1f3893aaf 100644 --- a/appl/telnet/libtelnet/kerberos5.c +++ b/appl/telnet/libtelnet/kerberos5.c @@ -277,6 +277,7 @@ kerberos5_is(Authenticator *ap, unsigned char *data, int cnt) krb5_data outbuf; krb5_keyblock *key_block; char *name; + krb5_principal server; int zero = 0; if (cnt-- < 1) @@ -311,14 +312,30 @@ kerberos5_is(Authenticator *ap, unsigned char *data, int cnt) return; } + ret = krb5_sock_to_principal (context, + 0, + "host", + KRB5_NT_SRV_HST, + &server); + if (ret) { + Data(ap, KRB_REJECT, "krb5_sock_to_principal failed", -1); + auth_finished(ap, AUTH_REJECT); + if (auth_debug_mode) + printf("Kerberos V5: " + "krb5_sock_to_principal failed (%s)\r\n", + krb5_get_err_text(context, ret)); + return; + } + ret = krb5_rd_req(context, &auth_context, &auth, - NULL, + server, NULL, NULL, &ticket); + krb5_free_principal (context, server); if (ret) { char *errbuf;