diff options
| author | John Carr <jfc@mit.edu> | 1992-06-10 15:02:51 +0000 |
|---|---|---|
| committer | John Carr <jfc@mit.edu> | 1992-06-10 15:02:51 +0000 |
| commit | ad444bac9a0f03bac0fab38bfc1f58d1ebf28896 (patch) | |
| tree | 8f27f60cddf87a7a0f70b6a4560978d240ebc1c4 /src/lib | |
| parent | a61b279a26fa665b55267e2c290769fadd6dbbc6 (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.c | 39 |
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; } |
