diff options
| author | Theodore Tso <tytso@mit.edu> | 1992-08-18 23:19:55 +0000 |
|---|---|---|
| committer | Theodore Tso <tytso@mit.edu> | 1992-08-18 23:19:55 +0000 |
| commit | ecd643d43e93c63bc562cddcd052fe87ea8d6ad6 (patch) | |
| tree | a8829bcdf8d8acd8bc99238964311f54974d601c /src/lib | |
| parent | ab30596fc6100b42a626093c24886b03f118d760 (diff) | |
| download | krb5-ecd643d43e93c63bc562cddcd052fe87ea8d6ad6.tar.gz krb5-ecd643d43e93c63bc562cddcd052fe87ea8d6ad6.tar.xz krb5-ecd643d43e93c63bc562cddcd052fe87ea8d6ad6.zip | |
Modified to use new principal type system
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2329 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/krb5/krb/copy_princ.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/copy_princ.c b/src/lib/krb5/krb/copy_princ.c index bff89b47e..8abdcbb9f 100644 --- a/src/lib/krb5/krb/copy_princ.c +++ b/src/lib/krb5/krb/copy_princ.c @@ -50,6 +50,8 @@ krb5_principal *outprinc; if (tempprinc == 0) return ENOMEM; + *tempprinc = *inprinc; /* Copy all of the non-allocated pieces */ + nelems = krb5_princ_size(inprinc); tempprinc->data = malloc(nelems * sizeof(krb5_data)); @@ -68,7 +70,21 @@ krb5_principal *outprinc; free (tempprinc); return ENOMEM; } + memcpy(krb5_princ_component(tempprinc, i)->data, + krb5_princ_component(inprinc, i)->data, len); + } + + tempprinc->realm.data = + malloc(tempprinc->realm.length = inprinc->realm.length); + if (!tempprinc->realm.data) { + for (i = 0; i < nelems; i++) + free(krb5_princ_component(tempprinc, i)->data); + free(tempprinc->data); + free(tempprinc); + return ENOMEM; } + memcpy(tempprinc->realm.data, inprinc->realm.data, inprinc->realm.length); + *outprinc = tempprinc; return 0; } |
