[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