Linux 4.2p1 crash during reverse name lookup
Darryl L. Miles
darryl at netbauds.net
Thu Jan 12 03:30:51 EST 2006
4.0p1 and 4.2p1 are affected for me, I'm using Linux based around a FC2
build (~2 years old).
I'm trying to login with password authentication from psftp.exe (part of
PuTTY) but it.
Maybe this bug isn't with OpenSSH itself but a supporting library, I
would appreciate your assistance in tracking down the problem.
I have tried getting a 'core' file out of SSH with 'ulimit -c unlimited'
before starting sshd, but I'm unable to find where the core file is.
The procps listing indicates SSH's working directory is / in the root
filesystem.
The reason why I state the problem occurs reverse name lookup is a guess
from the strace output, it looks like it is tring to load libnss_dns.so,
I'm not sure if this is being looked at from within the normal outer
root filesystem view or from a chroot ?
$ psftp.exe -v dlm at ns1.netbauds.net -P 24
Server version: SSH-1.99-OpenSSH_4.2
We claim version: SSH-2.0-PuTTY-Release-0.56
Using SSH protocol version 2
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange
Host key fingerprint is:
ssh-rsa 1024 3e:77:d5:a0:ab:cd:ff:fd:ff:ef:e9:ec:13:1c:03:09
Initialised AES-256 client->server encryption
Initialised AES-256 server->client encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "dlm".
ssh_init: error during SSH connection setup
$
Strace Linux side output:
Process 4331 attached - interrupt to quit
clone(Process 5967 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb7fcc0c8) = 5967
[...SNIP...]
[pid 5967] execve("/opt/openssh/sbin/sshd", ["/opt/openssh/sbin/sshd",
"-p", "24", "-R"], [/* 25 vars */]) = 0
[...SNIP...]
[pid 5967] getpeername(3, {sa_family=AF_INET6, sin6_port=htons(4040),
inet_pton(AF_INET6, "::ffff:82.36.183.26", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, [28]) = 0
[...SNIP...]
[pid 5967] getpeername(3, {sa_family=AF_INET6, sin6_port=htons(4040),
inet_pton(AF_INET6, "::ffff:82.36.183.26", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, [28]) = 0
[...SNIP...]
[pid 5967] getpeername(3, {sa_family=AF_INET6, sin6_port=htons(4040),
inet_pton(AF_INET6, "::ffff:82.36.183.26", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, [28]) = 0
[...SNIP...]
[pid 5967] clone(Process 5968 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb7fcc0c8) = 5968
[...SNIP...]
[pid 4657] getpeername(3, {sa_family=AF_INET6, sin6_port=htons(4034),
inet_pton(AF_INET6, "::ffff:www.xxx.yyy.zzz", &sin6_addr),
sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
[pid 4657] socket(PF_UNIX, SOCK_STREAM, 0) = 6
[pid 4657] connect(6, {sa_family=AF_UNIX, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
[pid 4657] close(6) = 0
[pid 4657] gettimeofday({1136994626, 380903}, NULL) = 0
[pid 4657] open("/etc/resolv.conf", O_RDONLY) = -1 ENOENT (No such file
or directory)
[pid 4657] uname({sys="Linux", node="mail.netbauds.net", ...}) = 0
[pid 4657] open("/etc/host.conf", O_RDONLY) = -1 ENOENT (No such file
or directory)
[pid 4657] open("/etc/hosts", O_RDONLY) = -1 ENOENT (No such file or
directory)
[pid 4657] open("/etc/ld.so.cache", O_RDONLY) = -1 ENOENT (No such file
or directory)
[pid 4657] open("/lib/tls/i686/sse2/libnss_dns.so.2", O_RDONLY) = -1
ENOENT (No such file or directory)
[pid 4657] stat64("/lib/tls/i686/sse2", 0xbfffd4fc) = -1 ENOENT (No
such file or directory)
[pid 4657] open("/lib/tls/i686/libnss_dns.so.2", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 4657] stat64("/lib/tls/i686", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/lib/tls/sse2/libnss_dns.so.2", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 4657] stat64("/lib/tls/sse2", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/lib/tls/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No
such file or directory)
[pid 4657] stat64("/lib/tls", 0xbfffd4fc) = -1 ENOENT (No such file or
directory)
[pid 4657] open("/lib/i686/sse2/libnss_dns.so.2", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 4657] stat64("/lib/i686/sse2", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/lib/i686/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No
such file or directory)
[pid 4657] stat64("/lib/i686", 0xbfffd4fc) = -1 ENOENT (No such file or
directory)
[pid 4657] open("/lib/sse2/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No
such file or directory)
[pid 4657] stat64("/lib/sse2", 0xbfffd4fc) = -1 ENOENT (No such file or
directory)
[pid 4657] open("/lib/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
[pid 4657] stat64("/lib", 0xbfffd4fc) = -1 ENOENT (No such file or
directory)
[pid 4657] open("/usr/lib/tls/i686/sse2/libnss_dns.so.2", O_RDONLY) =
-1 ENOENT (No such file or directory)
[pid 4657] stat64("/usr/lib/tls/i686/sse2", 0xbfffd4fc) = -1 ENOENT (No
such file or directory)
[pid 4657] open("/usr/lib/tls/i686/libnss_dns.so.2", O_RDONLY) = -1
ENOENT (No such file or directory)
[pid 4657] stat64("/usr/lib/tls/i686", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/usr/lib/tls/sse2/libnss_dns.so.2", O_RDONLY) = -1
ENOENT (No such file or directory)
[pid 4657] stat64("/usr/lib/tls/sse2", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/usr/lib/tls/libnss_dns.so.2", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 4657] stat64("/usr/lib/tls", 0xbfffd4fc) = -1 ENOENT (No such file
or directory)
[pid 4657] open("/usr/lib/i686/sse2/libnss_dns.so.2", O_RDONLY) = -1
ENOENT (No such file or directory)
[pid 4657] stat64("/usr/lib/i686/sse2", 0xbfffd4fc) = -1 ENOENT (No
such file or directory)
[pid 4657] open("/usr/lib/i686/libnss_dns.so.2", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 4657] stat64("/usr/lib/i686", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/usr/lib/sse2/libnss_dns.so.2", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 4657] stat64("/usr/lib/sse2", 0xbfffd4fc) = -1 ENOENT (No such
file or directory)
[pid 4657] open("/usr/lib/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No
such file or directory)
[pid 4657] stat64("/usr/lib", 0xbfffd4fc) = -1 ENOENT (No such file or
directory)
[pid 4657] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 4657 detached
[pid 4654] <... read resumed> 0xbffff018, 4) = ? ERESTARTSYS (To be
restarted)
[pid 4654] --- SIGCHLD (Child exited) @ 0 (0) ---
[pid 4654] read(6, "", 4) = 0
[pid 4654] exit_group(255) = ?
Process 4654 detached
<... select resumed> ) = 1 (in [5])
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 255}], WNOHANG) = 4654
waitpid(-1, 0xbfffedc0, WNOHANG) = -1 ECHILD (No child processes)
rt_sigaction(SIGCHLD, NULL, {0x804c3f0, [], 0}, 8) = 0
sigreturn() = ? (mask now [])
close(5) = 0
select(6, [3], NULL, NULL, NULL <unfinished ...>
Process 4331 detached
From the SSH server system:
$ locate libnss_dns
/lib/libnss_dns-2.3.3.so
/lib/libnss_dns.so.2
/lib/libnss_dns.so.1
/usr/lib/libnss_dns.so.1
/usr/lib/libnss_dns.so
--
Darryl L. Miles
More information about the openssh-unix-dev
mailing list