Package: libc6
Version: 2.22-6
Severity: important
Tags: upstream
Forwarded: https://sourceware.org/bugzilla/show_bug.cgi?id=19573

glibc 2.22 broke nss_hesiod so that it segfaults on almost all uses.  To 
reproduce:

# sed -i 's/^passwd:.*/& hesiod/' /etc/nsswitch.conf
# cat > /etc/hesiod.conf <<EOF
lhs=.ns
rhs=.athena.mit.edu
EOF
# id andersk
Segmentation fault (core dumped)

Backtrace:

(gdb) run
Starting program: /usr/bin/id andersk
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6531aa3 in sock_eq (a1=a1@entry=0x7ffff7bb7af4 <_res+20>, a2=0x0) at 
res_send.c:1629
1629    res_send.c: No such file or directory.
(gdb) bt
#0  0x00007ffff6531aa3 in sock_eq (a1=a1@entry=0x7ffff7bb7af4 <_res+20>, 
a2=0x0) at res_send.c:1629
#1  0x00007ffff65333f7 in __libc_res_nsend (statp=0x7ffff7bb7ae0 <_res>, 
buf=buf@entry=0x7fffffffdec0 "\322\325\001", buflen=45, buf2=buf2@entry=0x0, 
    buflen2=buflen2@entry=0, ans=ans@entry=0x7fffffffe2c0 
"`\343\377\377\377\177", anssiz=1024, ansp=0x0, ansp2=0x0, nansp2=0x0, 
resplen2=0x0, 
    ansp2_malloced=0x0) at res_send.c:416
#2  0x00007ffff6533bbd in __GI___res_nsend (statp=<optimized out>, 
buf=buf@entry=0x7fffffffdec0 "\322\325\001", buflen=<optimized out>, 
    ans=ans@entry=0x7fffffffe2c0 "`\343\377\377\377\177", 
anssiz=anssiz@entry=1024) at res_send.c:638
#3  0x00007ffff67417d6 in get_txt_records (class=1, name=name@entry=0x610a80 
"39270.uid.ns.athena.mit.edu", ctx=0x60f8c0) at hesiod.c:374
#4  0x00007ffff6741d95 in hesiod_resolve (context=context@entry=0x60f8c0, 
name=name@entry=0x7fffffffe780 "39270", type=type@entry=0x7ffff67432c6 "uid")
    at hesiod.c:240
#5  0x00007ffff6742aa2 in lookup (name=name@entry=0x7fffffffe780 "39270", 
type=type@entry=0x7ffff67432c6 "uid", 
    pwd=pwd@entry=0x7ffff7bb5e20 <resbuf.11041>, buffer=buffer@entry=0x60f260 
"saned", buflen=buflen@entry=1024, errnop=errnop@entry=0x7ffff7fe56b8)
    at nss_hesiod/hesiod-pwd.c:63
#6  0x00007ffff6742c2b in _nss_hesiod_getpwuid_r (uid=<optimized out>, 
pwd=0x7ffff7bb5e20 <resbuf.11041>, buffer=0x60f260 "saned", buflen=1024, 
    errnop=0x7ffff7fe56b8) at nss_hesiod/hesiod-pwd.c:112
#7  0x00007ffff78ccc0c in __getpwuid_r (uid=uid@entry=39270, 
resbuf=resbuf@entry=0x7ffff7bb5e20 <resbuf.11041>, buffer=0x60f260 "saned", 
    buflen=buflen@entry=1024, result=result@entry=0x7fffffffe848) at 
../nss/getXXbyYY_r.c:266
#8  0x00007ffff78cc52e in getpwuid (uid=39270) at ../nss/getXXbyYY.c:116
#9  0x00000000004022b9 in ?? ()
#10 0x00007ffff7835610 in __libc_start_main (main=0x401b20, argc=2, 
argv=0x7fffffffe9b8, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffe9a8) at libc-start.c:291
#11 0x00000000004026ac in ?? ()

See also:

https://sourceware.org/bugzilla/show_bug.cgi?id=19573
https://bugzilla.redhat.com/show_bug.cgi?id=1252570
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1571456

Anders

Reply via email to