[krbdev.mit.edu #2902] KBR5 1.4 kinit build on AIX 5.1 coredumps
Public Submitter via RT
rt-comment at krbdev.mit.edu
Wed Jul 13 22:44:14 EDT 2005
I'm running krb5 1.4.1 on AIX 5.2.0.0 --
The problem is due to the use of res_ninit() in krb5int_dns_init() in
dnsglue.c.
I'm not very familiar with the usage of res_ninit(), but debugging the
code seems to shows that whenever res_ninit(&statbuf) is called, the
stack seems to get corrupted and the core dump with illegal instruction
happens soon afterwards.
I don't know what the proper way to call res_ninit() is -- I can only
assume that it works on other platforms, nor do I have AIX source code
to dig into to see what actually is happening, but a reading of the
kerberos source doesn't suggest anything obvious is wrong. I've also
tried initializing statbuf to various assorted values to no avail.
I reading of the AIX man page for res_ninit() seems to suggest the
parameter to res_ninit() should be &_res (_res is #defined to a function
in the system resolver library when _REENTRANT). Switching statbuf to
_res, and lo, kerberos no longer crashes.
The attached patch does just this.
Of course, one could also #undef HAVE_RES_NSEARCH and have it work, but
I wasn't sure if res_search() in AIX was thread-safe.
-- Jonathan Chen <jon+krb at spock.org>
More information about the krb5-bugs
mailing list