From 710cc76dde19939ed12d064506f754236cccd50a Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 16 Mar 1997 17:16:06 +0000 Subject: [PATCH] (krb5_free_principal): added `context' argument. Changed all callers. (krb5_sname_to_principal): new function git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1436 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/principal.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/krb5/principal.c b/lib/krb5/principal.c index 9fcfb97de..1eeda20ab 100644 --- a/lib/krb5/principal.c +++ b/lib/krb5/principal.c @@ -11,7 +11,8 @@ RCSID("$Id$"); /* Public principal handling functions */ void -krb5_free_principal(krb5_principal p) +krb5_free_principal(krb5_context context, + krb5_principal p) { krb5_principal_free(p); } @@ -337,12 +338,12 @@ krb5_copy_principal(krb5_context context, return ENOMEM; p->type = inprinc->type; if(krb5_data_copy(&p->realm, inprinc->realm.data, inprinc->realm.length)){ - krb5_free_principal(p); + krb5_free_principal(context, p); return ENOMEM; } p->comp = ALLOC(inprinc->ncomp, krb5_data); if(!p->comp){ - krb5_free_principal(p); + krb5_free_principal(context, p); return ENOMEM; } @@ -350,7 +351,7 @@ krb5_copy_principal(krb5_context context, p->comp[i].length = 0; if(krb5_data_copy(&p->comp[i], inprinc->comp[i].data, inprinc->comp[i].length)){ - krb5_free_principal(p); + krb5_free_principal(context, p); return ENOMEM; } p->ncomp = i+1; @@ -409,3 +410,25 @@ krb5_425_conv_principal(krb5_context context, +krb5_error_code +krb5_sname_to_principal (krb5_context context, + const char *hostname, + const char *sname, + int32_t type, + krb5_principal *ret_princ) +{ + krb5_error_code ret; + char **r; + + ret = krb5_get_host_realm (context, hostname, &r); + if (ret) + return ret; + + return krb5_build_principal (context, + ret_princ, + strlen(r[0]), + r[0], + sname, + hostname, + 0); +}