From 1e14572a2648b000ec6b1567fa72ca9ba6531c48 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 8 Oct 2005 09:55:38 +0000 Subject: r10832: free the old session info metze (This used to be commit 16b2569788348ee3654557cf714ea3b204375c3c) --- source4/ldap_server/ldap_bind.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source4/ldap_server/ldap_bind.c') diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c index 9c9cca362b..e9d38ad93b 100644 --- a/source4/ldap_server/ldap_bind.c +++ b/source4/ldap_server/ldap_bind.c @@ -105,6 +105,7 @@ reply: errstr = NULL; } else if (NT_STATUS_IS_OK(status)) { struct ldapsrv_partition *part; + struct auth_session_info *old_session_info; result = LDAP_SUCCESS; errstr = NULL; @@ -112,11 +113,15 @@ reply: gensec_have_feature(call->conn->gensec, GENSEC_FEATURE_SIGN)) { call->conn->enable_wrap = True; } + old_session_info = call->conn->session_info; + call->conn->session_info = NULL; status = gensec_session_info(call->conn->gensec, &call->conn->session_info); if (!NT_STATUS_IS_OK(status)) { + call->conn->session_info = old_session_info; result = LDAP_OPERATIONS_ERROR; errstr = talloc_asprintf(reply, "SASL:[%s]: Failed to get session info: %s", req->creds.SASL.mechanism, nt_errstr(status)); } else { + talloc_free(old_session_info); for (part = call->conn->partitions; part; part = part->next) { if (!part->ops->Bind) { continue; -- cgit