36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
Fix deadlock in init_ldap_connection()
|
|
|
|
From: Leonardo Chiquitto <leonardo.lists@gmail.com>
|
|
|
|
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.
|
|
---
|
|
CHANGELOG | 1 +
|
|
modules/lookup_ldap.c | 2 +-
|
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- autofs-5.0.7.orig/CHANGELOG
|
|
+++ autofs-5.0.7/CHANGELOG
|
|
@@ -106,6 +106,7 @@
|
|
- fix mistake in assignment.
|
|
- use open(2) instead of access(2) to trigger dependent mounts.
|
|
- fix crash due to thread unsafe use of libldap.
|
|
+- fix deadlock in init_ldap_connection.
|
|
|
|
25/07/2012 autofs-5.0.7
|
|
=======================
|
|
--- autofs-5.0.7.orig/modules/lookup_ldap.c
|
|
+++ autofs-5.0.7/modules/lookup_ldap.c
|
|
@@ -288,7 +288,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;
|