From: Will Fiveash Date: Mon, 26 Jan 2009 21:42:23 +0000 (+0000) Subject: Restore krb5_free_key_data_contents() as it was in X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2999c1ecab0352f3c46a160c6d9396423b399017;p=thirdparty%2Fkrb5.git Restore krb5_free_key_data_contents() as it was in src/lib/kadm5/misc_free.c and rename the version of that function in kdb5.c to krb5_dbe_free_key_data_contents. Eventually this needs to be consolidated somewhere. git-svn-id: svn://anonsvn.mit.edu/krb5/branches/mkey_migrate@21802 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/include/kdb.h b/src/include/kdb.h index ea6a540971..ae56568b3e 100644 --- a/src/include/kdb.h +++ b/src/include/kdb.h @@ -53,6 +53,11 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ +/* + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + #ifndef KRB5_KDB5__ #define KRB5_KDB5__ @@ -655,7 +660,7 @@ krb5_db_get_context (krb5_context, void **db_context); void -krb5_free_key_data_contents(krb5_context, krb5_key_data *); +krb5_dbe_free_key_data_contents(krb5_context, krb5_key_data *); #define KRB5_KDB_DEF_FLAGS 0 diff --git a/src/kadmin/dbutil/kdb5_mkey.c b/src/kadmin/dbutil/kdb5_mkey.c index 658dcbfc92..57d469b1dc 100644 --- a/src/kadmin/dbutil/kdb5_mkey.c +++ b/src/kadmin/dbutil/kdb5_mkey.c @@ -312,7 +312,7 @@ kdb5_add_mkey(int argc, char *argv[]) for (cur_mkey_aux_data = mkey_aux_data_head; cur_mkey_aux_data != NULL; cur_mkey_aux_data = next_mkey_aux_data) { next_mkey_aux_data = cur_mkey_aux_data->next; - krb5_free_key_data_contents(util_context, &(cur_mkey_aux_data->latest_mkey)); + krb5_dbe_free_key_data_contents(util_context, &(cur_mkey_aux_data->latest_mkey)); free(cur_mkey_aux_data); } return; diff --git a/src/kadmin/dbutil/kdb5_util.c b/src/kadmin/dbutil/kdb5_util.c index 74353b0ab1..086217e8e8 100644 --- a/src/kadmin/dbutil/kdb5_util.c +++ b/src/kadmin/dbutil/kdb5_util.c @@ -53,6 +53,11 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ +/* + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + #include #include #include diff --git a/src/lib/kadm5/clnt/libkadm5clnt.exports b/src/lib/kadm5/clnt/libkadm5clnt.exports index b62ad55383..7f11f320ac 100644 --- a/src/lib/kadm5/clnt/libkadm5clnt.exports +++ b/src/lib/kadm5/clnt/libkadm5clnt.exports @@ -46,6 +46,7 @@ krb5_aprof_get_string krb5_aprof_getvals krb5_aprof_init krb5_flags_to_string +krb5_free_key_data_contents krb5_free_realm_params krb5_input_flag_to_string krb5_keysalt_is_present diff --git a/src/lib/kadm5/misc_free.c b/src/lib/kadm5/misc_free.c index e0d954245e..b8fe2a05e1 100644 --- a/src/lib/kadm5/misc_free.c +++ b/src/lib/kadm5/misc_free.c @@ -39,6 +39,23 @@ kadm5_ret_t return KADM5_OK; } +/* XXX this ought to be in libkrb5.a, but isn't */ +kadm5_ret_t krb5_free_key_data_contents(context, key) + krb5_context context; + krb5_key_data *key; +{ + int i, idx; + + idx = (key->key_data_ver == 1 ? 1 : 2); + for (i = 0; i < idx; i++) { + if (key->key_data_contents[i]) { + memset(key->key_data_contents[i], 0, key->key_data_length[i]); + free(key->key_data_contents[i]); + } + } + return KADM5_OK; +} + kadm5_ret_t kadm5_free_key_data(void *server_handle, krb5_int16 *n_key_data, krb5_key_data *key_data) diff --git a/src/lib/kadm5/server_internal.h b/src/lib/kadm5/server_internal.h index 838d4fecf5..4e890e8aa9 100644 --- a/src/lib/kadm5/server_internal.h +++ b/src/lib/kadm5/server_internal.h @@ -85,11 +85,8 @@ void destroy_dict(void); kadm5_ret_t krb5_copy_key_data_contents(krb5_context context, krb5_key_data *from, krb5_key_data *to); -/* XXX WAF: maybe delete this if all compiles */ -#if 0 /************** Begin IFDEF'ed OUT *******************************/ kadm5_ret_t krb5_free_key_data_contents(krb5_context context, krb5_key_data *key); -#endif /**************** END IFDEF'ed OUT *******************************/ /* * *Warning* diff --git a/src/lib/kadm5/srv/libkadm5srv.exports b/src/lib/kadm5/srv/libkadm5srv.exports index 3aae9cc02f..3296d3bb0f 100644 --- a/src/lib/kadm5/srv/libkadm5srv.exports +++ b/src/lib/kadm5/srv/libkadm5srv.exports @@ -71,6 +71,7 @@ krb5_aprof_getvals krb5_aprof_init krb5_copy_key_data_contents krb5_flags_to_string +krb5_free_key_data_contents krb5_free_realm_params krb5_input_flag_to_string krb5_keysalt_is_present diff --git a/src/lib/kadm5/srv/server_kdb.c b/src/lib/kadm5/srv/server_kdb.c index 43a9890ccf..31f793ade4 100644 --- a/src/lib/kadm5/srv/server_kdb.c +++ b/src/lib/kadm5/srv/server_kdb.c @@ -4,6 +4,11 @@ * $Header$ */ +/* + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + #if !defined(lint) && !defined(__CODECENTER__) static char *rcsid = "$Header$"; #endif diff --git a/src/lib/kdb/kdb5.c b/src/lib/kdb/kdb5.c index eedf1fce38..40de4589ac 100644 --- a/src/lib/kdb/kdb5.c +++ b/src/lib/kdb/kdb5.c @@ -106,6 +106,26 @@ kdb_unlock_list() return k5_mutex_unlock(&db_lock); } +/* + * XXX eventually this should be consolidated with krb5_free_key_data_contents + * so there is only a single version. + */ +void +krb5_dbe_free_key_data_contents(krb5_context context, + krb5_key_data *key) +{ + int i, idx; + + idx = (key->key_data_ver == 1 ? 1 : 2); + for (i = 0; i < idx; i++) { + if (key->key_data_contents[i]) { + zap(key->key_data_contents[i], key->key_data_length[i]); + free(key->key_data_contents[i]); + } + } + return; +} + static void krb5_free_actkvno_list(krb5_context context, krb5_actkvno_node *val) { @@ -126,27 +146,11 @@ krb5_free_mkey_aux_list(krb5_context context, krb5_mkey_aux_node *val) for (temp = val; temp != NULL;) { prev = temp; temp = temp->next; - krb5_free_key_data_contents(context, &prev->latest_mkey); + krb5_dbe_free_key_data_contents(context, &prev->latest_mkey); krb5_xfree(prev); } } -void -krb5_free_key_data_contents(krb5_context context, - krb5_key_data *key) -{ - int i, idx; - - idx = (key->key_data_ver == 1 ? 1 : 2); - for (i = 0; i < idx; i++) { - if (key->key_data_contents[i]) { - zap(key->key_data_contents[i], key->key_data_length[i]); - free(key->key_data_contents[i]); - } - } - return; -} - #define kdb_init_lib_lock(a) 0 #define kdb_destroy_lib_lock(a) (void)0 #define kdb_lock_lib_lock(a, b) 0 diff --git a/src/lib/kdb/libkdb5.exports b/src/lib/kdb/libkdb5.exports index e542576007..c202f988f1 100644 --- a/src/lib/kdb/libkdb5.exports +++ b/src/lib/kdb/libkdb5.exports @@ -37,6 +37,7 @@ krb5_dbe_find_act_mkey krb5_dbe_fetch_act_key_list krb5_dbe_find_enctype krb5_dbe_find_mkey +krb5_dbe_free_key_data_contents krb5_dbe_lookup_last_pwd_change krb5_dbe_lookup_actkvno krb5_dbe_lookup_mkvno @@ -66,7 +67,6 @@ krb5_db_delete_policy krb5_db_free_policy krb5_def_store_mkey krb5_db_promote -krb5_free_key_data_contents ulog_map ulog_set_role ulog_free_entries