summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>1996-11-07 16:46:23 +0000
committerEzra Peisach <epeisach@mit.edu>1996-11-07 16:46:23 +0000
commit4098d75a44e49e696dd7e07379c73862e242604e (patch)
treed60858d2e6cdfd43900666d4582d5b3755a2d634 /src
parent663566724eb07a1e0aa0da223ec678059fc948b1 (diff)
downloadkrb5-4098d75a44e49e696dd7e07379c73862e242604e.tar.gz
krb5-4098d75a44e49e696dd7e07379c73862e242604e.tar.xz
krb5-4098d75a44e49e696dd7e07379c73862e242604e.zip
* client_principal.c (kadm5_get_principal,
kadm5_modify_principal): For a V1 request, copy only the memory that is allocated for the incomming principal. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9312 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/kadm5/clnt/ChangeLog6
-rw-r--r--src/lib/kadm5/clnt/client_principal.c15
2 files changed, 19 insertions, 2 deletions
diff --git a/src/lib/kadm5/clnt/ChangeLog b/src/lib/kadm5/clnt/ChangeLog
index 7ce511a41..1d1704968 100644
--- a/src/lib/kadm5/clnt/ChangeLog
+++ b/src/lib/kadm5/clnt/ChangeLog
@@ -1,3 +1,9 @@
+Thu Nov 7 11:41:08 1996 Ezra Peisach <epeisach@mit.edu>
+
+ * client_principal.c (kadm5_get_principal,
+ kadm5_modify_principal): For a V1 request, copy only the
+ memory that is allocated for the incomming principal.
+
Fri Oct 4 08:38:16 1996 Ezra Peisach <epeisach@kangaroo.mit.edu>
* client_principal.c (kadm5_randkey_principal): Do not assume that
diff --git a/src/lib/kadm5/clnt/client_principal.c b/src/lib/kadm5/clnt/client_principal.c
index 54ce1f30b..14cd55d80 100644
--- a/src/lib/kadm5/clnt/client_principal.c
+++ b/src/lib/kadm5/clnt/client_principal.c
@@ -25,13 +25,19 @@ kadm5_create_principal(void *server_handle,
CHECK_HANDLE(server_handle);
+ memset(&arg, 0, sizeof(arg));
arg.mask = mask;
arg.passwd = pw;
arg.api_version = handle->api_version;
if(princ == NULL)
return EINVAL;
- memcpy(&arg.rec, princ, sizeof(kadm5_principal_ent_rec));
+
+ if (handle->api_version == KADM5_API_VERSION_1) {
+ memcpy(&arg.rec, princ, sizeof(kadm5_principal_ent_rec_v1));
+ } else {
+ memcpy(&arg.rec, princ, sizeof(kadm5_principal_ent_rec));
+ }
if (handle->api_version == KADM5_API_VERSION_1) {
/*
* hack hack cough cough.
@@ -94,6 +100,7 @@ kadm5_modify_principal(void *server_handle,
CHECK_HANDLE(server_handle);
+ memset(&arg, 0, sizeof(arg));
arg.mask = mask;
arg.api_version = handle->api_version;
/*
@@ -102,7 +109,11 @@ kadm5_modify_principal(void *server_handle,
*/
if(princ == NULL)
return EINVAL;
- memcpy(&arg.rec, princ, sizeof(kadm5_principal_ent_rec));
+ if (handle->api_version == KADM5_API_VERSION_1) {
+ memcpy(&arg.rec, princ, sizeof(kadm5_principal_ent_rec_v1));
+ } else {
+ memcpy(&arg.rec, princ, sizeof(kadm5_principal_ent_rec));
+ }
if(!(mask & KADM5_POLICY))
arg.rec.policy = NULL;
if (! (mask & KADM5_KEY_DATA)) {