summaryrefslogtreecommitdiffstats
path: root/daemons
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2011-05-30 15:35:14 -0400
committerSimo Sorce <ssorce@redhat.com>2012-01-11 12:04:12 -0500
commit5acceb568c62ed7be1fae197ebe69b4096434f21 (patch)
tree6dcac5afb12d98a2da2071344f4b8adb02368626 /daemons
parent94a60ecba3951219c5400459c2baecf6c33a42b6 (diff)
downloadfreeipa.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.c17
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,