This was fixed in yakkety’s libc6 2.23-1ubuntu1.  We are still waiting
for a xenial SRU.

** Description changed:

- To reproduce:
+ [Impact]
  
- sed -i 's/passwd: *compat/& hesiod/' /etc/nsswitch.conf
- cat > /etc/hesiod.conf <<EOF
+ The nss_hesiod nsswitch module, which worked in previous releases, does
+ not work at all in Ubuntu 16.04.  Enabling it causes NULL pointer
+ dereferences in calls such as getpwuid().
+ 
+ [Test Case]
+ 
+ # sed -i 's/passwd: *compat/& hesiod/' /etc/nsswitch.conf
+ # cat > /etc/hesiod.conf <<EOF
  lhs=.ns
  rhs=.athena.mit.edu
  EOF
- id andersk
+ # id andersk
+ Segmentation fault (core dumped)
  
- This is a bug in nss_hesiod. See
- https://sourceware.org/bugzilla/show_bug.cgi?id=19573.
+ Expected output: uid=39270(andersk) gid=101(…) groups=101(…).
+ 
+ [Regression Potential]
+ 
+ I wrote a 6-line patch that conditionalizes an errant res_nclose call.
+ There is also a bigger upstream patch on the glibc 2.22 and 2.23 stable
+ branches that entirely removes the unused abstraction that necessitated
+ the res_nclose calls at all.  Neither patch makes any changes outside of
+ the glibc hesiod directory, which as of now is so thoroughly broken that
+ there is nothing left to regress.
+ 
  
  ProblemType: Crash
  DistroRelease: Ubuntu 16.04
  Package: coreutils 8.25-2ubuntu2
  ProcVersionSignature: Ubuntu 4.4.0-18.34-generic 4.4.6
  Uname: Linux 4.4.0-18-generic x86_64
  NonfreeKernelModules: openafs
  ApportVersion: 2.20.1-0ubuntu2
  Architecture: amd64
  CurrentDesktop: GNOME
  Date: Sun Apr 17 22:39:06 2016
  EcryptfsInUse: Yes
  ExecutablePath: /usr/bin/id
  ExecutableTimestamp: 1455802667
  InstallationDate: Installed on 2016-02-19 (58 days ago)
  InstallationMedia: Ubuntu-GNOME 16.04 LTS "Xenial Xerus" - Alpha amd64 
(20160218)
  ProcCmdline: id andersk
  ProcCwd: /home/anders
  SegvAnalysis:
-  Segfault happened at: 0x7fef32217a88 <__libc_res_nsend+3192>:        cmp    
%dx,(%rax)
-  PC (0x7fef32217a88) ok
-  source "%dx" ok
-  destination "(%rax)" (0x00000000) not located in a known VMA region (needed 
writable region)!
+  Segfault happened at: 0x7fef32217a88 <__libc_res_nsend+3192>:        cmp    
%dx,(%rax)
+  PC (0x7fef32217a88) ok
+  source "%dx" ok
+  destination "(%rax)" (0x00000000) not located in a known VMA region (needed 
writable region)!
  SegvReason: writing NULL VMA
  Signal: 11
  SourcePackage: coreutils
  StacktraceTop:
-  sock_eq (a2=0x0, a1=0x7fef33b9daf4 <_res+20>) at res_send.c:1584
-  __libc_res_nsend (statp=0x7fef33b9dae0 <_res>, buf=buf@entry=0x7ffd88e80910 
"@\267\001", buflen=45, buf2=buf2@entry=0x0, buflen2=buflen2@entry=0, 
ans=ans@entry=0x7ffd88e80d10 " you want.  Don't add spaces after the\n", 
anssiz=1024, ansp=0x0, ansp2=0x0, nansp2=0x0, resplen2=0x0, ansp2_malloced=0x0) 
at res_send.c:408
-  __GI___res_nsend (statp=<optimized out>, buf=buf@entry=0x7ffd88e80910 
"@\267\001", buflen=<optimized out>, ans=ans@entry=0x7ffd88e80d10 " you want.  
Don't add spaces after the\n", anssiz=anssiz@entry=1024) at res_send.c:630
-  get_txt_records (class=1, name=name@entry=0xff3dd0 
"39270.uid.ns.athena.mit.edu", ctx=0xff27e0) at hesiod.c:374
-  hesiod_resolve (context=context@entry=0xff27e0, 
name=name@entry=0x7ffd88e81190 "39270", type=type@entry=0x7fef3242a486 "uid") 
at hesiod.c:240
+  sock_eq (a2=0x0, a1=0x7fef33b9daf4 <_res+20>) at res_send.c:1584
+  __libc_res_nsend (statp=0x7fef33b9dae0 <_res>, buf=buf@entry=0x7ffd88e80910 
"@\267\001", buflen=45, buf2=buf2@entry=0x0, buflen2=buflen2@entry=0, 
ans=ans@entry=0x7ffd88e80d10 " you want.  Don't add spaces after the\n", 
anssiz=1024, ansp=0x0, ansp2=0x0, nansp2=0x0, resplen2=0x0, ansp2_malloced=0x0) 
at res_send.c:408
+  __GI___res_nsend (statp=<optimized out>, buf=buf@entry=0x7ffd88e80910 
"@\267\001", buflen=<optimized out>, ans=ans@entry=0x7ffd88e80d10 " you want.  
Don't add spaces after the\n", anssiz=anssiz@entry=1024) at res_send.c:630
+  get_txt_records (class=1, name=name@entry=0xff3dd0 
"39270.uid.ns.athena.mit.edu", ctx=0xff27e0) at hesiod.c:374
+  hesiod_resolve (context=context@entry=0xff27e0, 
name=name@entry=0x7ffd88e81190 "39270", type=type@entry=0x7fef3242a486 "uid") 
at hesiod.c:240
  Title: id crashed with SIGSEGV in sock_eq()
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm bumblebee cdrom dip libvirtd lpadmin plugdev sambashare 
sbuild sudo wireshark

** Description changed:

  [Impact]
  
  The nss_hesiod nsswitch module, which worked in previous releases, does
  not work at all in Ubuntu 16.04.  Enabling it causes NULL pointer
  dereferences in calls such as getpwuid().
  
  [Test Case]
  
  # sed -i 's/passwd: *compat/& hesiod/' /etc/nsswitch.conf
  # cat > /etc/hesiod.conf <<EOF
  lhs=.ns
  rhs=.athena.mit.edu
  EOF
  # id andersk
  Segmentation fault (core dumped)
  
  Expected output: uid=39270(andersk) gid=101(…) groups=101(…).
  
  [Regression Potential]
  
  I wrote a 6-line patch that conditionalizes an errant res_nclose call.
  There is also a bigger upstream patch on the glibc 2.22 and 2.23 stable
  branches that entirely removes the unused abstraction that necessitated
  the res_nclose calls at all.  Neither patch makes any changes outside of
  the glibc hesiod directory, which as of now is so thoroughly broken that
  there is nothing left to regress.
  
+ [Other Info]
  
  ProblemType: Crash
  DistroRelease: Ubuntu 16.04
  Package: coreutils 8.25-2ubuntu2
  ProcVersionSignature: Ubuntu 4.4.0-18.34-generic 4.4.6
  Uname: Linux 4.4.0-18-generic x86_64
  NonfreeKernelModules: openafs
  ApportVersion: 2.20.1-0ubuntu2
  Architecture: amd64
  CurrentDesktop: GNOME
  Date: Sun Apr 17 22:39:06 2016
  EcryptfsInUse: Yes
  ExecutablePath: /usr/bin/id
  ExecutableTimestamp: 1455802667
  InstallationDate: Installed on 2016-02-19 (58 days ago)
  InstallationMedia: Ubuntu-GNOME 16.04 LTS "Xenial Xerus" - Alpha amd64 
(20160218)
  ProcCmdline: id andersk
  ProcCwd: /home/anders
  SegvAnalysis:
   Segfault happened at: 0x7fef32217a88 <__libc_res_nsend+3192>:        cmp    
%dx,(%rax)
   PC (0x7fef32217a88) ok
   source "%dx" ok
   destination "(%rax)" (0x00000000) not located in a known VMA region (needed 
writable region)!
  SegvReason: writing NULL VMA
  Signal: 11
  SourcePackage: coreutils
  StacktraceTop:
   sock_eq (a2=0x0, a1=0x7fef33b9daf4 <_res+20>) at res_send.c:1584
   __libc_res_nsend (statp=0x7fef33b9dae0 <_res>, buf=buf@entry=0x7ffd88e80910 
"@\267\001", buflen=45, buf2=buf2@entry=0x0, buflen2=buflen2@entry=0, 
ans=ans@entry=0x7ffd88e80d10 " you want.  Don't add spaces after the\n", 
anssiz=1024, ansp=0x0, ansp2=0x0, nansp2=0x0, resplen2=0x0, ansp2_malloced=0x0) 
at res_send.c:408
   __GI___res_nsend (statp=<optimized out>, buf=buf@entry=0x7ffd88e80910 
"@\267\001", buflen=<optimized out>, ans=ans@entry=0x7ffd88e80d10 " you want.  
Don't add spaces after the\n", anssiz=anssiz@entry=1024) at res_send.c:630
   get_txt_records (class=1, name=name@entry=0xff3dd0 
"39270.uid.ns.athena.mit.edu", ctx=0xff27e0) at hesiod.c:374
   hesiod_resolve (context=context@entry=0xff27e0, 
name=name@entry=0x7ffd88e81190 "39270", type=type@entry=0x7fef3242a486 "uid") 
at hesiod.c:240
  Title: id crashed with SIGSEGV in sock_eq()
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm bumblebee cdrom dip libvirtd lpadmin plugdev sambashare 
sbuild sudo wireshark

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1571456

Title:
  id crashed with SIGSEGV in sock_eq()

To manage notifications about this bug go to:
https://bugs.launchpad.net/glibc/+bug/1571456/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to