diff options
Diffstat (limited to 'src/lib/kadm5/misc_free.c')
-rw-r--r-- | src/lib/kadm5/misc_free.c | 59 |
1 files changed, 22 insertions, 37 deletions
diff --git a/src/lib/kadm5/misc_free.c b/src/lib/kadm5/misc_free.c index 9dc91b5..066bc73 100644 --- a/src/lib/kadm5/misc_free.c +++ b/src/lib/kadm5/misc_free.c @@ -18,12 +18,8 @@ kadm5_free_policy_ent(void *server_handle, kadm5_policy_ent_t val) _KADM5_CHECK_HANDLE(server_handle); - if(val) { - if (val->policy) - free(val->policy); - if (handle->api_version == KADM5_API_VERSION_1) - free(val); - } + if (val) + free(val->policy); return KADM5_OK; } @@ -74,42 +70,31 @@ kadm5_ret_t kadm5_free_key_data(void *server_handle, } kadm5_ret_t -kadm5_free_principal_ent(void *server_handle, - kadm5_principal_ent_t val) +kadm5_free_principal_ent(void *server_handle, kadm5_principal_ent_t val) { - kadm5_server_handle_t handle = server_handle; + kadm5_server_handle_t handle = server_handle; + krb5_tl_data *tl; int i; _KADM5_CHECK_HANDLE(server_handle); - if(val) { - if(val->principal) - krb5_free_principal(handle->context, val->principal); - if(val->mod_name) - krb5_free_principal(handle->context, val->mod_name); - if(val->policy) - free(val->policy); - if (handle->api_version > KADM5_API_VERSION_1) { - if (val->n_key_data) { - for (i = 0; i < val->n_key_data; i++) - krb5_free_key_data_contents(handle->context, - &val->key_data[i]); - free(val->key_data); - } - if (val->tl_data) { - krb5_tl_data *tl; - - while (val->tl_data) { - tl = val->tl_data->tl_data_next; - free(val->tl_data->tl_data_contents); - free(val->tl_data); - val->tl_data = tl; - } - } - } - - if (handle->api_version == KADM5_API_VERSION_1) - free(val); + if (!val) + return KADM5_OK; + + krb5_free_principal(handle->context, val->principal); + krb5_free_principal(handle->context, val->mod_name); + free(val->policy); + if (val->n_key_data) { + for (i = 0; i < val->n_key_data; i++) + krb5_free_key_data_contents(handle->context, &val->key_data[i]); + free(val->key_data); + } + + while (val->tl_data) { + tl = val->tl_data->tl_data_next; + free(val->tl_data->tl_data_contents); + free(val->tl_data); + val->tl_data = tl; } return KADM5_OK; } |