]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Unregister error message key on library unload
authorBen Kaduk <kaduk@mit.edu>
Wed, 12 Sep 2012 15:35:04 +0000 (11:35 -0400)
committerBen Kaduk <kaduk@mit.edu>
Wed, 12 Sep 2012 17:41:48 +0000 (13:41 -0400)
Revision fcdd2de1 added the K5_KEY_GSS_KRB5_ERROR_MESSAGE key, and
registered it in the gssapi library initialization routine, but
did not unregister it in the libary finalization routine.
When the library is unloaded and reloaded in the same process,
this leads to an assertion failure, since we check that
destructors_set[keynum] is zero (no destructor set) when registering
a key in util/support/threads.c.
Unregister the key on library cleanup to resolve the error.

ticket: 7353
target_version: 1.10.4
tags: pullup

src/lib/gssapi/krb5/gssapi_krb5.c

index bff9f78d251c975a44ded574fceecb2a375dbbf9..31f705d8249afc554add8c27523cd85fffb0de58 100644 (file)
@@ -1023,6 +1023,7 @@ void gss_krb5int_lib_fini(void)
 
     k5_key_delete(K5_KEY_GSS_KRB5_SET_CCACHE_OLD_NAME);
     k5_key_delete(K5_KEY_GSS_KRB5_CCACHE_NAME);
+    k5_key_delete(K5_KEY_GSS_KRB5_ERROR_MESSAGE);
     k5_mutex_destroy(&kg_vdb.mutex);
 #ifndef _WIN32
     k5_mutex_destroy(&kg_kdc_flag_mutex);