diff options
author | Ezra Peisach <epeisach@mit.edu> | 2003-07-19 20:07:18 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2003-07-19 20:07:18 +0000 |
commit | dd3a318cba2783a323e83781763225d398c9317b (patch) | |
tree | 825f121eda8d94c0d570712a85c725d48547061f /src/lib/krb5/error_tables | |
parent | 26a6fb956b2fbed474436578704898de6fbe229c (diff) | |
download | krb5-dd3a318cba2783a323e83781763225d398c9317b.zip krb5-dd3a318cba2783a323e83781763225d398c9317b.tar.gz krb5-dd3a318cba2783a323e83781763225d398c9317b.tar.bz2 |
* init_ets.c (krb5_init_ets): Only initialize error tables once -
so that init_conext/free_context loops do not result in memory
leaks.
I did not implement the remove error table functions - as a system
installed com_err library might not support remove_error_table that
exists in our trees com_err library.
ticket: 1665
target_version: 1.3.1
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15700 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/error_tables')
-rw-r--r-- | src/lib/krb5/error_tables/ChangeLog | 6 | ||||
-rw-r--r-- | src/lib/krb5/error_tables/init_ets.c | 15 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/lib/krb5/error_tables/ChangeLog b/src/lib/krb5/error_tables/ChangeLog index 0e380c1..2eb6925 100644 --- a/src/lib/krb5/error_tables/ChangeLog +++ b/src/lib/krb5/error_tables/ChangeLog @@ -1,3 +1,9 @@ +2003-07-19 Ezra Peisach <epeisach@mit.edu> + + * init_ets.c (krb5_init_ets): Only initialize error tables once - + so that init_conext/free_context loops do not result in memory + leaks. + 2003-07-17 Ken Raeburn <raeburn@mit.edu> * Makefile.in (LIBNAME) [##WIN16##]: Don't define. diff --git a/src/lib/krb5/error_tables/init_ets.c b/src/lib/krb5/error_tables/init_ets.c index a3bf5aa..56a750e 100644 --- a/src/lib/krb5/error_tables/init_ets.c +++ b/src/lib/krb5/error_tables/init_ets.c @@ -32,11 +32,16 @@ void krb5_init_ets (krb5_context context) { - initialize_krb5_error_table(); - initialize_kv5m_error_table(); - initialize_kdb5_error_table(); - initialize_asn1_error_table(); - initialize_k524_error_table(); + static int inited = 0; + + if (inited == 0) { + initialize_krb5_error_table(); + initialize_kv5m_error_table(); + initialize_kdb5_error_table(); + initialize_asn1_error_table(); + initialize_k524_error_table(); + inited++; + } } void |