You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.2 KiB
35 lines
1.2 KiB
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;
|
|
|