[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: