pkgsrc-Bugs archive

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

pkg/42380: nss_ldap + pam_ldap + sshd = hang, *unless* you type the wrong password first



>Number:         42380
>Category:       pkg
>Synopsis:       nss_ldap + pam_ldap + sshd = hang, *unless* you type the wrong 
>password first
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Nov 26 07:10:00 +0000 2009
>Originator:     Konrad Schroder
>Release:        5.0_STABLE
>Organization:
University of Washington
>Environment:
NetBSD gro.hhhh.org 5.0_STABLE NetBSD 5.0_STABLE (XEN3_DOMU) #1: Wed Nov 25 
12:51:22 PST 2009  
perseant%gro.hhhh.org@localhost:/usr/obj/sys/arch/amd64/compile.amd64/XEN3_DOMU 
amd64

>Description:
I've been debugging a curious problem with an LDAP-enabled system: LDAP users 
are correctly authenticated by PAM, but after they are authenticated the child 
process of sshd hangs forever.  This does *not* happen, however, if they first 
mistype their password.  After typing their password a second time they are 
logged in without difficulty.
>How-To-Repeat:
Follow the steps outlined on 
http://wiki.netbsd.se/OpenLDAP_Authentication_on_NetBSD.  Try to log in, as a 
user defined in LDAP, using ssh.
>Fix:
The only thing I've found that worked, curiously, was to disable 
pthread_at_fork in the nss_ldap package.  I can't tell you why that would 
possibly do anything (I ran across it on the web, and tried it only out of 
desperation) but I can provide a crude patch that fixes the problem neatly on 
my systems:

Index: patches/patch-ah
===================================================================
RCS file: patches/patch-ah
diff -N patches/patch-ah
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-ah    26 Nov 2009 06:53:26 -0000
@@ -0,0 +1,11 @@
+--- ldap-nss.c.old     2009-11-25 22:47:25.000000000 -0800
++++ ldap-nss.c 2009-11-25 22:48:35.000000000 -0800
+@@ -23,6 +23,8 @@
+ 
+ #include "config.h"
+ 
++#undef HAVE_PTHREAD_ATFORK
++
+ #ifdef HAVE_PORT_BEFORE_H
+ #include <port_before.h>
+ #endif



Home | Main Index | Thread Index | Old Index