summaryrefslogtreecommitdiff
path: root/source4/libcli/ldap/ldap_bind.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2008-09-24 01:37:16 -0400
committerSimo Sorce <idra@samba.org>2008-09-24 01:43:57 -0400
commit83b0c5d43f568222d97f9b8de985f1e39a375fb9 (patch)
tree97e3aced390fc7db276b1c47d382377a697469dd /source4/libcli/ldap/ldap_bind.c
parent7b20cbb1152af7f3779cbb0dd74d939d8f1637c0 (diff)
downloadsamba-83b0c5d43f568222d97f9b8de985f1e39a375fb9.tar.gz
samba-83b0c5d43f568222d97f9b8de985f1e39a375fb9.tar.bz2
samba-83b0c5d43f568222d97f9b8de985f1e39a375fb9.zip
Fix nasty bug that would come up only if a client connection to a remote
ldap server suddenly dies. We were creating a wrong talloc hierarchy, so the event.fde was not freed automatically as expected. This in turn made the event system call the ldap io handlers with a null packet structure, causing a segfault. Fix also the ordering in ldap_connection_dead() Thanks to Metze for the huge help in tracking down this one.
Diffstat (limited to 'source4/libcli/ldap/ldap_bind.c')
-rw-r--r--source4/libcli/ldap/ldap_bind.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/source4/libcli/ldap/ldap_bind.c b/source4/libcli/ldap/ldap_bind.c
index 65673116be..b66232c02e 100644
--- a/source4/libcli/ldap/ldap_bind.c
+++ b/source4/libcli/ldap/ldap_bind.c
@@ -387,6 +387,7 @@ _PUBLIC_ NTSTATUS ldap_bind_sasl(struct ldap_connection *conn,
if (NT_STATUS_IS_OK(status)) {
struct socket_context *sasl_socket;
status = gensec_socket_init(conn->gensec,
+ conn,
conn->sock,
conn->event.event_ctx,
ldap_read_io_handler,