diff options
author | Simo Sorce <idra@samba.org> | 2008-09-24 01:37:16 -0400 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2008-09-24 01:43:57 -0400 |
commit | 83b0c5d43f568222d97f9b8de985f1e39a375fb9 (patch) | |
tree | 97e3aced390fc7db276b1c47d382377a697469dd /source4/ldap_server | |
parent | 7b20cbb1152af7f3779cbb0dd74d939d8f1637c0 (diff) | |
download | samba-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/ldap_server')
-rw-r--r-- | source4/ldap_server/ldap_bind.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c index 8357251a8f..20777e5261 100644 --- a/source4/ldap_server/ldap_bind.c +++ b/source4/ldap_server/ldap_bind.c @@ -208,6 +208,7 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call) } else { ctx->conn = conn; status = gensec_socket_init(conn->gensec, + conn->connection, conn->connection->socket, conn->connection->event.ctx, stream_io_handler_callback, |