summaryrefslogtreecommitdiffstats
path: root/src/lib/kadm5
diff options
context:
space:
mode:
authorBarry Jaspan <bjaspan@mit.edu>1996-10-21 20:30:38 +0000
committerBarry Jaspan <bjaspan@mit.edu>1996-10-21 20:30:38 +0000
commitea0442c3eade49a21977a52f3091b4e32189b382 (patch)
treef8660c765f587116c631ee0d603d7d6e3a199190 /src/lib/kadm5
parent8683790416c542f54d88df08b21962d6d03da2ed (diff)
downloadkrb5-ea0442c3eade49a21977a52f3091b4e32189b382.tar.gz
krb5-ea0442c3eade49a21977a52f3091b4e32189b382.tar.xz
krb5-ea0442c3eade49a21977a52f3091b4e32189b382.zip
* svr_principal.c (kadm5_modify_principal): fix modify_principal's
handling of KADM5_TL_DATA [krb5-admin/20] git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9221 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kadm5')
-rw-r--r--src/lib/kadm5/srv/ChangeLog5
-rw-r--r--src/lib/kadm5/srv/svr_principal.c26
2 files changed, 19 insertions, 12 deletions
diff --git a/src/lib/kadm5/srv/ChangeLog b/src/lib/kadm5/srv/ChangeLog
index e60a083c7..7369d4b70 100644
--- a/src/lib/kadm5/srv/ChangeLog
+++ b/src/lib/kadm5/srv/ChangeLog
@@ -1,3 +1,8 @@
+Mon Oct 21 16:28:52 1996 Barry Jaspan <bjaspan@mit.edu>
+
+ * svr_principal.c (kadm5_modify_principal): fix modify_principal's
+ handling of KADM5_TL_DATA [krb5-admin/20]
+
Fri Oct 18 14:24:12 1996 Barry Jaspan <bjaspan@mit.edu>
* svr_misc_free.c, server_dict.c, adb_policy.c, adb_free.c:
diff --git a/src/lib/kadm5/srv/svr_principal.c b/src/lib/kadm5/srv/svr_principal.c
index df9e34925..7339ea1bd 100644
--- a/src/lib/kadm5/srv/svr_principal.c
+++ b/src/lib/kadm5/srv/svr_principal.c
@@ -497,24 +497,26 @@ kadm5_modify_principal(void *server_handle,
}
if (mask & KADM5_TL_DATA) {
- /* splice entry->tl_data onto the front of kdb.tl_data */
- tl_data_orig = kdb.tl_data;
- for (tl_data_tail = entry->tl_data; tl_data_tail->tl_data_next;
- tl_data_tail = tl_data_tail->tl_data_next)
- ;
- tl_data_tail->tl_data_next = kdb.tl_data;
+ krb5_tl_data *tl;
+ /*
+ * Replace kdb.tl_data with what was passed in. The
+ * KRB5_TL_KADM_DATA will be re-added (based on adb) by
+ * kdb_put_entry, below.
+ */
+ while (kdb.tl_data) {
+ tl = kdb.tl_data->tl_data_next;
+ free(kdb.tl_data->tl_data_contents);
+ free(kdb.tl_data);
+ kdb.tl_data = tl;
+ }
+
kdb.tl_data = entry->tl_data;
+ kdb.n_tl_data = entry->n_tl_data;
}
if ((ret = kdb_put_entry(handle, &kdb, &adb)))
goto done;
- if (mask & KADM5_TL_DATA) {
- /* remove entry->tl_data from the front of kdb.tl_data */
- tl_data_tail->tl_data_next = NULL;
- kdb.tl_data = tl_data_orig;
- }
-
ret = KADM5_OK;
done:
if (have_opol) {