summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorJohn Carr <jfc@mit.edu>1992-06-10 15:02:51 +0000
committerJohn Carr <jfc@mit.edu>1992-06-10 15:02:51 +0000
commitad444bac9a0f03bac0fab38bfc1f58d1ebf28896 (patch)
tree8f27f60cddf87a7a0f70b6a4560978d240ebc1c4 /src/lib
parenta61b279a26fa665b55267e2c290769fadd6dbbc6 (diff)
Principal type changes
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2291 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/os/sn2princ.c39
1 files changed, 6 insertions, 33 deletions
diff --git a/src/lib/krb5/os/sn2princ.c b/src/lib/krb5/os/sn2princ.c
index 307adf559..fe4b243ca 100644
--- a/src/lib/krb5/os/sn2princ.c
+++ b/src/lib/krb5/os/sn2princ.c
@@ -47,11 +47,10 @@ OLDDECLARG(const char *,sname)
OLDDECLARG(krb5_boolean,canonicalize)
OLDDECLARG(krb5_principal *,ret_princ)
{
- krb5_principal lprinc;
struct hostent *hp;
char **hrealms, *remote_host;
krb5_error_code retval;
- register char **cpp, *cp;
+ register char *cp;
/* copy the hostname into non-volatile storage */
@@ -78,38 +77,12 @@ OLDDECLARG(krb5_principal *,ret_princ)
xfree(hrealms);
return KRB5_ERR_HOST_REALM_UNKNOWN;
}
- if (!(lprinc = (krb5_principal) calloc(4, sizeof(*lprinc)))) {
- free(remote_host);
- krb5_free_host_realm(hrealms);
- return ENOMEM;
- }
- if (!(lprinc[0] = (krb5_data *)malloc(sizeof(*lprinc[0])))) {
- krb5_free_host_realm(hrealms);
- nomem:
- free(remote_host);
- krb5_free_principal(lprinc);
- return ENOMEM;
- }
- lprinc[0]->data = hrealms[0];
- lprinc[0]->length = strlen(hrealms[0]);
-
- /* they're allocated; leave the first one alone, however */
- for (cpp = &hrealms[1]; *cpp; cpp++)
- xfree(*cpp);
- xfree(hrealms);
- if (!(lprinc[1] = (krb5_data *)malloc(sizeof(*lprinc[1])))) {
- goto nomem;
- }
- lprinc[1]->length = strlen(sname);
- lprinc[1]->data = strdup(sname);
- if (!(lprinc[2] = (krb5_data *)malloc(sizeof(*lprinc[2])))) {
- goto nomem;
- }
- lprinc[2]->length = strlen(remote_host);
- lprinc[2]->data = remote_host;
+ retval = krb5_build_principal(ret_princ, strlen(hrealms[0]), hrealms[0],
+ sname, remote_host, (char *)0);
- *ret_princ = lprinc;
- return 0;
+ free(remote_host);
+ krb5_free_host_realm(hrealms);
+ return retval;
}