Bug in libc6?
I have come across the strangest problem. About a week or two ago
heimdal kerberos simply stopped working. I don't think it's a heimdal
problem because I tried multiple versions and none of them worked, but
it did use to work. Here's a stack trace from it crashing:
Program received signal SIGFPE, Arithmetic exception.
0x0000003279b094ed in _dl_allocate_static_tls () from /lib/ld-linux-x86-64.so.2
(gdb) bt
#0 0x0000003279b094ed in _dl_allocate_static_tls ()
from /lib/ld-linux-x86-64.so.2
#1 0x0000003279b0a4ae in _dl_relocate_object_internal ()
from /lib/ld-linux-x86-64.so.2
#2 0x0000002a95e6c7fb in dl_open_worker () from /usr/lib/debug/libc.so.6
#3 0x0000003279b0baa0 in _dl_catch_error_internal ()
from /lib/ld-linux-x86-64.so.2
#4 0x0000002a95e6cfef in _dl_open () from /usr/lib/debug/libc.so.6
#5 0x0000002a95e6e2f1 in do_dlopen () from /usr/lib/debug/libc.so.6
#6 0x0000003279b0baa0 in _dl_catch_error_internal ()
from /lib/ld-linux-x86-64.so.2
#7 0x0000002a95e6e38b in __libc_dlopen_mode () from /usr/lib/debug/libc.so.6
#8 0x0000002a95e4d528 in __nss_lookup_function ()
from /usr/lib/debug/libc.so.6
#9 0x0000002a95e4d684 in __nss_lookup () from /usr/lib/debug/libc.so.6
#10 0x0000002a95e52c18 in getservbyname_r@@GLIBC_2.2.5 ()
from /usr/lib/debug/libc.so.6
#11 0x0000002a95e529f4 in getservbyname () from /usr/lib/debug/libc.so.6
#12 0x0000002a95690b04 in krb5_getportbyname (context=0x2a959ec478,
service=0x2a956a22d2 "kerberos", proto=0x2a956a27d7 "udp", default_port=88)
at get_port.c:47
#13 0x0000002a95695d9a in krb5_krbhst_init (context=0x2a959ec478,
realm=0x50a4b0 "HACKISH.ORG", type=0, handle=0x7fbfff8948) at krbhst.c:633
#14 0x0000002a9569d603 in krb5_sendto_kdc2 (context=0x505010,
send_data=0x7fbfff8b30, realm=0x50a208, receive=0x7fbfff8b20, master=0)
at send_to_kdc.c:386
#15 0x0000002a9568fdda in krb5_get_in_cred (context=0x505010, options=266,
addrs=0x0, etypes=0x0, ptypes=0x0, preauth=0x0,
key_proc=0x2a95690730 <krb5_password_key_proc>, keyseed=0x7fbffff3c0,
decrypt_proc=0x40, decryptarg=0x40, creds=0x7fbffff1a0,
ret_as_reply=0x7fbffff010) at get_in_tkt.c:694
#16 0x0000002a95691421 in krb5_get_init_creds_password (context=0x505010,
creds=0x7fbffff4c0, client=0x509fe0, password=0x7fbffff3c0 "",
prompter=0x402000 <krb5_prompter_posix>, data=0x0, start_time=0,
in_tkt_service=0x0, options=0x7fbffff560) at init_creds_pw.c:438
The line that it crashes on in get_port.c (and the first line run in the
function) is:
if ((sp = getservbyname (service, proto)) == NULL)
I tried to reproduce this using the following stupid program, but this
workes fine:
#include <netdb.h>
int main() {
struct servent *sp;
const char *service = "kerberos";
const char *proto = "udp";
sp = getservbyname(service, proto);
return 0;
}
I tried building libc6 setting DEB_BUILD_OPTIONS=nostrip, but I still
didn't get debug info from libc.so.6. Any suggestions on how to track
this down?
-Peter
Reply to: