Assertion Error in MIT Kerberos 1.12.4

Vipul Mehta vipulmehta.1989 at
Wed Jan 20 14:38:49 EST 2016


I am dynamically loading MIT Kerberos and calling gss/krb5 functions using
function pointers in my Kerberos Client-Server Linux.64 utility. My utility
also uses cURL. During compile time i link my utility with cURL built
without MIT Kerberos while during runtime i use cURL built with MIT
Kerberos. So my utility has no compile time dependency on MIT Kerberos.

In my setup, and are same as
and respectively.

Now when i use "" and "" library names for
dynamic loading, it crashes with following assertion error :
"thread.c:347: krb5int_key_register" Assertion failed:
destructors_set[keynum] == 0 failed."

My utility works fine if I use "" and ""
library names for dynamic loading.

I debugged and found that k5_key_register() was being called twice for
key_value = 1 in the first case in which it failed.

What is this key registration  ? Is it part of library initialization
routine ? When it is supposed to be called ?

If Kerberized-cURL loads MIT Kerberos library during program startup and my
utility also loads it via dlopen(), what will be the behaviour of this key
registration call ?

MIT Kerberos : 1.12.4
cURL : 7.37.1
Platform : RHEL v.6 64-Bit


More information about the krbdev mailing list