Author: abartlet Date: 2005-05-16 00:12:39 +0000 (Mon, 16 May 2005) New Revision: 6801
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6801 Log: It appears that krb5_make_principal, while convenient, is not portable. Andrew Bartlett Modified: branches/SAMBA_4_0/source/auth/kerberos/kerberos_verify.c Changeset: Modified: branches/SAMBA_4_0/source/auth/kerberos/kerberos_verify.c =================================================================== --- branches/SAMBA_4_0/source/auth/kerberos/kerberos_verify.c 2005-05-15 23:42:11 UTC (rev 6800) +++ branches/SAMBA_4_0/source/auth/kerberos/kerberos_verify.c 2005-05-16 00:12:39 UTC (rev 6801) @@ -326,6 +326,7 @@ char *malloc_principal; char *machine_username; krb5_principal salt_princ = NULL; + char *salt_princ_string; NTSTATUS creds_nt_status; struct cli_credentials *machine_account; @@ -342,8 +343,12 @@ DEBUG(3, ("Could not obtain machine account credentials from the local database\n")); /* This just becomes a locking key, if we don't have creds, we must be using the keytab */ - ret = krb5_make_principal(context, &salt_princ, lp_realm(), - "host", lp_netbios_name(), NULL); + salt_princ_string = talloc_asprintf(mem_ctx, "host/[EMAIL PROTECTED]", lp_netbios_name(), lp_realm()); + if (!salt_princ_string) { + ret = ENOMEM; + } else { + ret = krb5_parse_name(context, salt_princ_string, &salt_princ); + } } else { machine_username = talloc_strdup(mem_ctx, cli_credentials_get_username(machine_account)); @@ -364,8 +369,12 @@ if (!salt_body) { ret = ENOMEM; } else { - ret = krb5_make_principal(context, &salt_princ, cli_credentials_get_realm(machine_account), - "host", salt_body, NULL); + salt_princ_string = talloc_asprintf(mem_ctx, "host/[EMAIL PROTECTED]", salt_body, cli_credentials_get_realm(machine_account)); + if (!salt_princ_string) { + ret = ENOMEM; + } else { + ret = krb5_parse_name(context, salt_princ_string, &salt_princ); + } } } }