aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/error_tables
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>2003-07-19 20:07:18 +0000
committerEzra Peisach <epeisach@mit.edu>2003-07-19 20:07:18 +0000
commitdd3a318cba2783a323e83781763225d398c9317b (patch)
tree825f121eda8d94c0d570712a85c725d48547061f /src/lib/krb5/error_tables
parent26a6fb956b2fbed474436578704898de6fbe229c (diff)
downloadkrb5-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/ChangeLog6
-rw-r--r--src/lib/krb5/error_tables/init_ets.c15
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