[PATCH] Fix deadlock in init_ldap_connection()

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

 



Hi Ian,

I submitted a patch some time ago (commit 9fc20db13) that
unfortunately introduces a regression when using LDAP with
TLS. Sorry about that. I'm attaching a patch to fix this.

Leonardo
Fix deadlock in init_ldap_connection()

Commit 9fc20db13 ("fix crash due to thread unsafe use of libldap")
introduced a deadlock in init_ldap_connection(). When TLS is on,
this function will call itself recursively and try to lock a mutex
that's already owned by the thread. Fix the problem by using the
lockless version.

Index: autofs-5.0.8/modules/lookup_ldap.c
===================================================================
--- autofs-5.0.8.orig/modules/lookup_ldap.c
+++ autofs-5.0.8/modules/lookup_ldap.c
@@ -300,7 +300,7 @@ LDAP *__init_ldap_connection(unsigned lo
 				return NULL;
 			}
 			ctxt->use_tls = LDAP_TLS_DONT_USE;
-			ldap = init_ldap_connection(logopt, uri, ctxt);
+			ldap = __init_ldap_connection(logopt, uri, ctxt);
 			if (ldap)
 				ctxt->use_tls = LDAP_TLS_INIT;
 			return ldap;
Index: autofs-5.0.8/CHANGELOG
===================================================================
--- autofs-5.0.8.orig/CHANGELOG
+++ autofs-5.0.8/CHANGELOG
@@ -7,6 +7,7 @@
 - fix WITH_LIBTIRPC function name.
 - fix ipv6 libtirpc getport.
 - extend fix for crash due to thread unsafe use of libldap.
+- fix deadlock in init_ldap_connection.
 
 17/10/2013 autofs-5.0.8
 =======================

[Index of Archives]     [Linux Filesystem Development]     [Linux Ext4]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux