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);
+                                       }
                                }
                        }
                }

Reply via email to