1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

better krb5 error handling (thanks andrewb!)

(This used to be commit fd3a3daef3)
This commit is contained in:
Andrew Tridgell 2001-10-20 06:50:24 +00:00
parent 9884de2d3b
commit 93645be91f
3 changed files with 23 additions and 9 deletions

View File

@ -48,15 +48,22 @@ static krb5_error_code krb5_mk_req2(krb5_context context,
/* obtain ticket & session key */
memset((char *)&creds, 0, sizeof(creds));
if ((retval = krb5_copy_principal(context, server, &creds.server)))
if ((retval = krb5_copy_principal(context, server, &creds.server))) {
DEBUG(1,("krb5_copy_principal failed (%s)\n",
error_message(retval)));
goto cleanup_princ;
}
if ((retval = krb5_cc_get_principal(context, ccache, &creds.client)))
if ((retval = krb5_cc_get_principal(context, ccache, &creds.client))) {
DEBUG(1,("krb5_cc_get_principal failed (%s)\n",
error_message(retval)));
goto cleanup_creds;
}
if ((retval = krb5_get_credentials(context, 0,
ccache, &creds, &credsp))) {
DEBUG(1,("krb5_get_credentials failed (%d)\n", retval));
DEBUG(1,("krb5_get_credentials failed (%s)\n",
error_message(retval)));
goto cleanup_creds;
}
@ -64,7 +71,8 @@ static krb5_error_code krb5_mk_req2(krb5_context context,
retval = krb5_mk_req_extended(context, auth_context, ap_req_options,
&in_data, credsp, outbuf);
if (retval) {
DEBUG(1,("krb5_mk_req_extended failed (%d)\n", retval));
DEBUG(1,("krb5_mk_req_extended failed (%s)\n",
error_message(retval)));
}
krb5_free_creds(context, credsp);
@ -92,12 +100,14 @@ DATA_BLOB krb5_get_ticket(char *service, char *realm)
retval = krb5_init_context(&context);
if (retval) {
DEBUG(1,("krb5_init_context failed\n"));
DEBUG(1,("krb5_init_context failed (%s)\n",
error_message(retval)));
goto failed;
}
if ((retval = krb5_cc_default(context, &ccdef))) {
DEBUG(1,("krb5_cc_default failed\n"));
DEBUG(1,("krb5_cc_default failed (%s)\n",
error_message(retval)));
goto failed;
}
@ -106,7 +116,6 @@ DATA_BLOB krb5_get_ticket(char *service, char *realm)
0,
service, realm,
ccdef, &packet))) {
DEBUG(1,("krb5_mk_req2 failed\n"));
goto failed;
}

View File

@ -163,7 +163,7 @@ static int negprot_spnego(char *p, uint8 cryptkey[8])
DATA_BLOB blob;
extern pstring global_myname;
uint8 guid[16];
const char *OIDs[] = {OID_NTLMSSP,
const char *OIDs[] = {OID_NTLMSSP,
OID_KERBEROS5_OLD,
NULL};
char *principle;

View File

@ -62,12 +62,14 @@ static int reply_spnego_kerberos(connection_struct *conn,
ret = krb5_init_context(&context);
if (ret) {
DEBUG(1,("krb5_init_context failed (%s)\n", error_message(ret)));
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}
ret = krb5_build_principal(context, &server, strlen(realm),
realm, service, NULL);
if (ret) {
DEBUG(1,("krb5_build_principal failed (%s)\n", error_message(ret)));
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}
@ -76,12 +78,15 @@ static int reply_spnego_kerberos(connection_struct *conn,
if ((ret = krb5_rd_req(context, &auth_context, &packet,
server, keytab, NULL, &tkt))) {
DEBUG(3,("krb5_rd_req failed with code %08x\n", ret));
DEBUG(3,("krb5_rd_req failed (%s)\n",
error_message(ret)));
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}
if ((ret = krb5_unparse_name(context, tkt->enc_part2->client,
&client))) {
DEBUG(3,("krb5_unparse_name failed (%s)\n",
error_message(ret)));
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}