diff options
author | Simo Sorce <ssorce@redhat.com> | 2011-05-30 15:35:14 -0400 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2012-01-11 12:04:12 -0500 |
commit | 5acceb568c62ed7be1fae197ebe69b4096434f21 (patch) | |
tree | 6dcac5afb12d98a2da2071344f4b8adb02368626 /daemons | |
parent | 94a60ecba3951219c5400459c2baecf6c33a42b6 (diff) | |
download | freeipa.git-5acceb568c62ed7be1fae197ebe69b4096434f21.tar.gz freeipa.git-5acceb568c62ed7be1fae197ebe69b4096434f21.tar.xz freeipa.git-5acceb568c62ed7be1fae197ebe69b4096434f21.zip |
ipa-kdb: add function to free principals
Diffstat (limited to 'daemons')
-rw-r--r-- | daemons/ipa-kdb/ipa_kdb_principals.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/daemons/ipa-kdb/ipa_kdb_principals.c b/daemons/ipa-kdb/ipa_kdb_principals.c index f42360da..016fa6a3 100644 --- a/daemons/ipa-kdb/ipa_kdb_principals.c +++ b/daemons/ipa-kdb/ipa_kdb_principals.c @@ -837,7 +837,22 @@ done: void ipadb_free_principal(krb5_context kcontext, krb5_db_entry *entry) { - return; + krb5_tl_data *prev, *next; + int i; + + if (entry) { + free(entry->e_data); + krb5_free_principal(kcontext, entry->princ); + prev = entry->tl_data; + while(prev) { + next = prev->tl_data_next; + free(prev->tl_data_contents); + free(prev); + prev = next; + } + ipa_krb5_free_key_data(entry->key_data, entry->n_key_data); + free(entry); + } } krb5_error_code ipadb_put_principal(krb5_context kcontext, |